Java调用网易163邮箱,发送邮件
生活随笔
收集整理的這篇文章主要介紹了
Java调用网易163邮箱,发送邮件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java調用網易163郵箱,發送郵件
Java調用163郵箱發送郵件,大概分為兩部分:
1.創建郵件信息,包括標題,內容等
2.創建郵件郵件鏈接,發送郵件
一、創建郵件鏈接
1.首先要有163郵箱的賬號。
2. 在郵箱設置中查找smtp服務器地址,需要開啟smtp服務。這個是固定的,不需要修改。
網易163郵箱的 SMTP 服務器地址為: smtp.163.com
3.發送郵件,建議使用授權碼(有的郵箱叫 獨立密碼),確保郵箱密碼的安全性。授權碼在郵箱設置中進行設置。如果開啟了授權碼,發送郵件的時候,必須使用授權碼。
這里設置開啟smtp服務和授權碼。我這里已經是設置好的。
POM文件依賴:
代碼如下:
@Component public class EmailNotofication {// 發件人的 郵箱 和 密碼/授權碼// PS: 某些郵箱服務器為了增加郵箱本身密碼的安全性,給 SMTP 客戶端設置了獨立密碼(有的郵箱稱為“授權碼”)// 對于開啟了獨立密碼的郵箱, 這里的郵箱密碼必需使用這個獨立密碼(授權碼)。private static String myEmailAccount = "發件人郵箱賬號";private static String myEmailPassword = "授權碼";// 發件人郵箱的 SMTP 服務器地址, 可在郵箱設置中查找,需要開啟smtp服務// 網易163郵箱的 SMTP 服務器地址為: smtp.163.comprivate static String smtp = "smtp.163.com";// 收件人郵箱private static String receiveMailAccount = "收件人郵箱賬號";/*** 發送郵件** @param emailContent*/public void senEmail(String emailContent) {try {// 1. 創建參數配置, 用于連接郵件服務器的參數配置Properties props = new Properties();// 使用的協議(JavaMail規范要求)props.setProperty("mail.transport.protocol", "smtp");// 發件人的郵箱的 SMTP 服務器地址props.setProperty("mail.smtp.host", smtp);// 需要請求認證props.setProperty("mail.smtp.auth", "true");// 2. 根據配置創建會話對象, 用于和郵件服務器交互Session session = Session.getInstance(props);// 設置為debug模式, 可以查看詳細的發送 logsession.setDebug(true);// 3. 創建一封郵件 session、發件人、收件人、郵件內容MimeMessage message = createMimeMessage(session, myEmailAccount, receiveMailAccount, emailContent);// 4. 根據 Session 獲取郵件傳輸對象Transport transport = session.getTransport();// 5. 使用 郵箱賬號 和 密碼/授權碼 連接郵件服務器, 這里認證的郵箱必須與 message 中的發件人郵箱一致, 否則報錯transport.connect(myEmailAccount, myEmailPassword);// 6. 發送郵件, 發到所有的收件地址, message.getAllRecipients() 獲取到的是在創建郵件對象時添加的所有收件人, 抄送人, 密送人transport.sendMessage(message, message.getAllRecipients());// 7. 關閉連接transport.close();} catch (Exception e) {log.info("發送郵件失敗:{}", e.getMessage());}}二、創建一封簡單的郵件。
ps:需要設置發件人、收件人、編碼格式、郵件主題和內容。
代碼如下:
/*** 創建郵件** @param session* @param myEmailAccount* @param receiveMailAccount* @param message* @return*/private MimeMessage createMimeMessage(Session session, String myEmailAccount, String receiveMailAccount, String message) {try {// 1. 創建一封郵件MimeMessage mimeMessage = new MimeMessage(session);// 2. From: 發件人 emailUserName、昵稱、編碼格式mimeMessage.setFrom(new InternetAddress(myEmailAccount, "發件人名稱", "UTF-8"));// 3. To: 收件人(可以增加多個收件人)mimeMessage.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMailAccount, "收件人名稱", "UTF-8"));//多個收件人/**String[] split = receiveMailAccount.split(",");for(int i = 0; i < split.length; i++){mimeMessage.addRecipient(MimeMessage.RecipientType.TO, new InternetAddress(split[i]));}*/// 4. Subject: 郵件主題mimeMessage.setSubject("郵件主題", "UTF-8");// 5. Content: 郵件正文(可以使用html標簽)mimeMessage.setContent(message, "text/html;charset=UTF-8");// 6. 設置發件時間mimeMessage.setSentDate(new Date());// 7. 保存設置mimeMessage.saveChanges();return mimeMessage;} catch (Exception e) {log.info("創建郵件失敗:{}",e.getMessage());}return null;} }如果遇到退信問題,錯誤:554 DT:SPM ,此錯誤為判定你的郵件為垃圾郵件。提交申請等待一會即可(xxxx為你的郵箱):
https://feedback.mail.126.com/antispam/complain.php?user=xxxx
總結
以上是生活随笔為你收集整理的Java调用网易163邮箱,发送邮件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 千里达v1000时速_重新定义性价比 千
- 下一篇: Java 发送163邮件