利用Java Mail發送郵件的代碼

ph44 9年前發布 | 1K 次閱讀 Java

import java.util.Properties;

import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeUtility;

import org.apache.commons.lang.StringUtils;

public class MailUtil {

private MimeMessage message;
private Session session;
private Transport transport;
private String smtpHost = "";
private int smtpPort = 25;
private String senderUserName = "";
private String senderPassword = "";

public MailUtil(Properties properties, boolean debug) {
    this.smtpHost = properties.getProperty("mail.smtp.host");
    this.smtpPort = Integer.parseInt(properties.getProperty("mail.smtp.port"));
    this.senderUserName = properties.getProperty("mail.sender.username");
    this.senderPassword = properties.getProperty("mail.sender.password");
    session = Session.getInstance(properties);
    session.setDebug(debug);//開啟后有調試信息
    message = new MimeMessage(session);
}

/**
 * 發送郵件
 *
 * @param subject        郵件主題
 * @param mailBody       郵件內容
 * @param senderNickName 發件人NickName
 * @param receiveUser    收件人地址
 * @param ccReceiveUser  抄送地址
 * @param bccReceiveUser 密送地址
 */
public void sendEmail(String subject, String mailBody, String senderNickName,
                      String receiveUser, String ccReceiveUser, String bccReceiveUser, Boolean isHtmlFormat) {
    try {
        // 發件人
        InternetAddress from = null;
        if (StringUtils.isEmpty(senderNickName)) {
            from = new InternetAddress(senderUserName);
        } else {
            from = new InternetAddress(MimeUtility.encodeWord(senderNickName) + " <" + senderUserName + ">");
        }
        message.setFrom(from);

        // 收件人
        InternetAddress to = new InternetAddress(receiveUser);
        message.setRecipient(Message.RecipientType.TO, to);

        //抄送人
        if (!StringUtils.isEmpty(ccReceiveUser)) {
            InternetAddress cc = new InternetAddress(ccReceiveUser);
            message.setRecipient(Message.RecipientType.CC, cc);
        }

        //密送人
        if (!StringUtils.isEmpty(bccReceiveUser)) {
            InternetAddress bcc = new InternetAddress(bccReceiveUser);
            message.setRecipient(Message.RecipientType.BCC, bcc);
        }

        message.setSubject(subject);
        String content = mailBody.toString();

        if (isHtmlFormat) {
            message.setContent(content, "text/html;charset=UTF-8");
        } else {
            message.setContent(content, "text/plain;charset=UTF-8");
        }
        message.saveChanges();
        transport = session.getTransport("smtp");
        transport.connect(smtpHost, smtpPort, senderUserName, senderPassword);
        transport.sendMessage(message, message.getAllRecipients());


    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        if (transport != null) {
            try {
                transport.close();
            } catch (MessagingException e) {
                e.printStackTrace();
            }
        }
    }
}

public static void main(String[] args) {
    Properties properties = new Properties();
    properties.setProperty("mail.smtp.host", "smtp.sina.com");
    properties.setProperty("mail.smtp.port", "25");
    properties.setProperty("mail.smtp.auth", "true");
    properties.setProperty("mail.sender.username", "XXXXXXXXX");
    properties.setProperty("mail.sender.password", "XXXXXXXXX");
    MailUtil mailUtil = new MailUtil(properties, false);

}

}</pre>

 本文由用戶 ph44 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!