demo需求: 用java第三方調用郵箱(主要是qq郵箱)發送郵件給一方或多方 demo主要技術: 1.引入一個額外的jar包,javax.mail.jar,開啟java操作郵箱的功能 2.Properties類的使用 demo主要代碼展示: Java / show 方法簡介 第三方調用郵箱(這裡主 ...
demo需求:
用java第三方調用郵箱(主要是qq郵箱)發送郵件給一方或多方
demo主要技術:
1.引入一個額外的jar包,javax.mail.jar,開啟java操作郵箱的功能
2.Properties類的使用
demo主要代碼展示:
/**
* show 方法簡介
* 第三方調用郵箱(這裡主要是qq郵箱)發送郵件給一方或多方,註意如果是qq郵箱必須開ssl加密
* @author 葉灬黎
* @param host 主機名,例:qq郵箱的host,"smtp.qq.com"
* @param sender 發送人的郵箱
* @param nickname 發送人的昵稱(隨便取,別人收到郵件時看到的昵稱)
* @param password 密碼,除qq郵箱是要去生成的隨機碼,暫時其他郵箱都是郵箱登錄密碼
* @param receivers 接收人的郵箱,可以一個,可以多個,存放在一個字元串數組中傳遞
* @param subject 郵件主題(標題)
* @param content 郵件內容
* @throws Exception
*/
public static void sendMail(String host, String sender, String nickname, String password, String[] receivers,
String subject, String content) throws Exception {
Properties props = new Properties();
// 開啟debug調試
props.setProperty("mail.debug", "true");
// 發送伺服器需要身份驗證
props.setProperty("mail.smtp.auth", "true");
// 設置郵件伺服器主機名
props.setProperty("mail.host", host);
// 發送郵件協議名稱
props.setProperty("mail.transport.protocol", "smtp");
// 開啟ssl加密,目前qq是要開的
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);
Session session = Session.getInstance(props);
// 定義郵件主題,內容,發件人
Message msg = new MimeMessage(session);
msg.setSubject(subject);
StringBuilder builder = new StringBuilder();
builder.append(content);
msg.setText(builder.toString());
msg.setFrom(new InternetAddress(sender, nickname, "UTF-8"));
//傳輸連接,併發送
Transport transport = session.getTransport();
transport.connect(host, sender, password);
Address[] address = new Address[receivers.length];
for (int i = 0; i < receivers.length; i++) {
address[i] = new InternetAddress(receivers[i]);
}
transport.sendMessage(msg, address);
transport.close();
}
demo資源位置:
svn://106.15.229.200/Javaweb/tinyDemo_mail,用戶 temp/temp