发送邮件类实现接口

package sentmail;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;

public class SendMail implements Mail{
    private Logger logger = new Logger();
    String from;
    String pass;
    String rcpt;
    String server;
    String port;
    String subject;

    public SendMail(String from, String pass, String rcpt, String server, String port, String subject){
        this.from = from;
        this.pass = pass;
        this.rcpt = rcpt;
        this.server = server;
        this.port = port;
        this.subject = subject;
    }

    @Override
    public void sentmail() {
        // 创建配置文件
        Properties properties = new Properties();
        properties.setProperty("mail.smtp.host", server);
        properties.setProperty("mail.smtp.port", port);
        properties.setProperty("mail.transport.protocol", "smtp");
        properties.put("mail.smtp.auth", "true");

        // 创建session对象
        Session session = Session.getDefaultInstance(properties, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(from, pass);
            }
        });

        // 开启debug模式
        session.setDebug(true);
        try {
            // 获取连接对象
            Transport transport = session.getTransport();
            // 连接服务器
            transport.connect(server, from, pass);
            // 创建邮件对象
            MimeMessage message = new MimeMessage(session);
            // 邮件发信人
            message.setFrom(new InternetAddress(from));
            // 邮件收信人
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(rcpt));
            // 主题
            message.setSubject(subject);
            // 内容
            message.setContent(subject, "text/html;charset=UTF-8");
            // 设置发送的日期
//            message.setSentDate(new Date());
            message.setSentDate(new Date());
            // 发送邮件
            transport.sendMessage(message, message.getAllRecipients());
            // 关闭连接
            transport.close();
            logger.info("Sent message successfully...");
        }catch (MessagingException me){
            me.printStackTrace();
            StringWriter trace = new StringWriter();
            me.printStackTrace(new PrintWriter(trace));
            logger.error(trace.toString());
        }catch (Exception e){
//            e.printStackTrace();
            logger.error("发送邮件失败");
            StringWriter trace = new StringWriter();
            e.printStackTrace(new PrintWriter(trace));
            logger.error(trace.toString());
        }
    }
}


猜你喜欢

转载自blog.51cto.com/11732619/2677252