JavaMail郵件發送實用類
在Web開發中,文本郵件發送的任務比較常見,我們可以利用它進行一些客戶通知和異常通知,文本郵件發送一般用到JavaMail API,下面是一個我有時用到的郵件發送實用工具類,把其中一些參數修改一下就能為你所用。
注意:在執行代碼前,請把mail.jar和activation.jar載入工程。
代碼如下:
- package com.heyang;
- import java.util.Date;
- import java.util.Properties;
- import javax.mail.Address;
- import javax.mail.Message;
- import javax.mail.Session;
- import javax.mail.Transport;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeMessage;
- /**
- * 常規JavaMail 郵件發送實用類
- * @author: 何楊(heyang78@gmail.com)
- * @date: 2008-8-6-下午02:43:22
- */
- public final class MailUtil {
- // 郵件發送者地址
- private static final String SenderEmailAddr = "XXXXXXX@163.com";
- // 郵件發送者郵箱用戶
- private static final String SMTPUserName = "XXXX";
- // 郵件發送者郵箱密碼
- private static final String SMTPPassword = "XXXXXXX";
- // 郵件發送者郵箱SMTP服務器
- private static final String SMTPServerName = "smtp.163.com";
- // 傳輸類型
- private static final String TransportType = "smtp";
- // 屬性
- private static Properties props;
- /**
- * 私有構造函數,防止外界新建本實用類的實例,因為直接使用MailUtil.sendMail發送郵件即可
- *
- */
- private MailUtil() {
- }
- /**
- * 靜態構造器
- */
- static {
- MailUtil.props = new Properties();
- // 存儲發送郵件服務器的信息
- MailUtil.props.put("mail.smtp.host", MailUtil.SMTPServerName);
- // 同時通過驗證
- MailUtil.props.put("mail.smtp.auth", "true");
- }
- /**
- * 發送郵件
- * @param emailAddr:收信人郵件地址
- * @param mailTitle:郵件標題
- * @param mailConcept:郵件內容
- */
- public static void sendMail(String emailAddr, String mailTitle,
- String mailConcept) {
- // 根據屬性新建一個郵件會話,null參數是一種Authenticator(驗證程序) 對象
- Session s = Session.getInstance(MailUtil.props, null);
- // 設置調試標志,要查看經過郵件服務器郵件命令,可以用該方法
- s.setDebug(false);
- // 由郵件會話新建一個消息對象
- Message message = new MimeMessage(s);
- try {
- // 設置發件人
- Address from = new InternetAddress(MailUtil.SenderEmailAddr);
- message.setFrom(from);
- // 設置收件人
- Address to = new InternetAddress(emailAddr);
- message.setRecipient(Message.RecipientType.TO, to);
- // 設置主題
- message.setSubject(mailTitle);
- // 設置信件內容
- message.setText(mailConcept);
- // 設置發信時間
- message.setSentDate(new Date());
- // 存儲郵件信息
- message.saveChanges();
- Transport transport = s.getTransport(MailUtil.TransportType);
- // 要填入你的用戶名和密碼;
- transport.connect(MailUtil.SMTPServerName, MailUtil.SMTPUserName,
- MailUtil.SMTPPassword);
- // 發送郵件,其中第二個參數是所有已設好的收件人地址
- transport.sendMessage(message, message.getAllRecipients());
- transport.close();
- System.out.println("發送郵件,郵件地址:" + emailAddr + " 標題:" + mailTitle
- + " 內容:" + mailConcept + "成功!");
- } catch (Exception e) {
- System.out.println(e.getMessage());
- System.out.println("發送郵件,郵件地址:" + emailAddr + " 標題:" + mailTitle
- + " 內容:" + mailConcept + "失敗! 原因是" + e.getMessage());
- }
- }
- /**
- * 測試郵件發送情況
- * @param args
- */
- public static void main(String[] args){
- MailUtil.sendMail("XXXXXX@gmail.com", "title", "concept");
- }
- }
posted on 2008-08-08 12:54 sitinspring 閱讀(2510) 評論(5) 編輯 收藏 所屬分類: Java API