日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

springboot mail插件/JavaMailSenderImpl 发邮件。163网易企业邮箱调用的坑。

發布時間:2024/9/19 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot mail插件/JavaMailSenderImpl 发邮件。163网易企业邮箱调用的坑。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

  • spring boot 2.0.0.RELEASE
  • spring 5.0.4.RELEASE
  • 網易企業郵箱 2019年版
  • jdk 1.8

發郵件的說明

按照加密方式方式,可以分為:

  • 明文
  • TLS加密
  • SSL加密

發送明文

發送明文郵件時,需要設置好:

  • 協議(默認是smtp,可不用設置)
  • host
  • 端口(默認是25)
  • 用戶名
  • 密碼
  • 開啟身份驗證(mail.smtp.auth=true)

網易企業郵箱 不再支持明文郵件了。使用此種方式調用時,會獲得錯誤:535 5.7.0 ERR.LOGIN.NONSSL

JavaMailSenderImpl發送郵件,示例代碼如下:

public class TestSendMail1 {private static Logger log = LoggerFactory.getLogger(TestSendMail1.class);public static void main(String[] args) throws Exception {JavaMailSenderImpl mailSender = new JavaMailSenderImpl();mailSender.setHost("smtphz.qiye.163.com");mailSender.setPort(25);mailSender.setUsername("xxx@mydomain.com");mailSender.setPassword("123456");Properties javaMailProperties = mailSender.getJavaMailProperties();javaMailProperties.setProperty("mail.smtp.auth", "true"); javaMailProperties.setProperty("mail.debug", "true");//啟用調試javaMailProperties.setProperty("mail.smtp.timeout", "3000"); //設置超時時間3秒mailSender.setJavaMailProperties(javaMailProperties);try{MimeMessage mailMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mailMessage, true, "UTF-8");helper.setFrom("xxx@mydomain.com");helper.setTo("xxx@mydomain.com");helper.setSubject("測試郵件:您有一個新的未處理消息(使用明文發送)");helper.setText(String.format("hi,%s: <br/><br/><br/>很高興認識你!", "張三"), true);mailSender.send(mailMessage);}catch (Exception e) {log.error("發送郵件失敗", e);}}}

springboot mail插件發送郵件,配置如下(示例代碼在后面):

spring.mail.host=smtphz.qiye.163.com spring.mail.username=xxx@mydomain.com spring.mail.password=123456 spring.mail.port=25 spring.mail.protocol=smtp spring.mail.default-encoding=UTF-8 spring.mail.properties.mail.smtp.timeout=3000 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.debug=true spring.mail.properties.mail.smtp.ssl.enable=false spring.mail.properties.mail.imap.ssl.socketFactory.fallback=false spring.mail.properties.mail.smtp.ssl.socketFactory.class=javax.net.ssl.SSLSocketFactory spring.mail.properties.mail.smtp.starttls.enable=false spring.mail.properties.mail.smtp.starttls.required=false

TLS加密

發送明文郵件時,需要設置好:

  • 協議(默認是smtp,可不用設置)
  • host
  • 端口(默認情況下,TLS加密使用25端口)
  • 用戶名
  • 密碼
  • 開啟身份驗證(mail.smtp.auth=true)
  • 支持TLS加密(mail.smtp.starttls.required = true)

TLS加密使用25端口 ! TLS加密使用25端口 ! TLS加密使用25端口!

JavaMailSenderImpl發送郵件,示例代碼如下:

public class TestSendMail2 {private static Logger log = LoggerFactory.getLogger(TestSendMail2.class);public static void main(String[] args) throws Exception {JavaMailSenderImpl mailSender = new JavaMailSenderImpl();mailSender.setHost("smtphz.qiye.163.com");mailSender.setPort(25);mailSender.setUsername("xxx@mydomain.com");mailSender.setPassword("123456");Properties javaMailProperties = mailSender.getJavaMailProperties();javaMailProperties.setProperty("mail.smtp.auth", "true"); javaMailProperties.setProperty("mail.debug", "true");//啟用調試javaMailProperties.setProperty("mail.smtp.timeout", "3000"); //設置超時時間3秒javaMailProperties.setProperty("mail.smtp.starttls.enable", "true");javaMailProperties.setProperty("mail.smtp.starttls.required", "true");javaMailProperties.setProperty("mail.smtp.ssl.enable", "false");javaMailProperties.setProperty("mail.imap.ssl.socketFactory.fallback", "false");javaMailProperties.setProperty("mail.smtp.ssl.socketFactory.class", "javax.net.ssl.SSLSocketFactory");mailSender.setJavaMailProperties(javaMailProperties);try{MimeMessage mailMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mailMessage, true, "UTF-8");helper.setFrom("xxx@mydomain.com");helper.setTo("xxx@mydomain.com");helper.setSubject("測試郵件:您有一個新的未處理消息(使用TLS加密發送)");helper.setText(String.format("hi,%s: <br/><br/><br/>很高興認識你!", "張三"), true);mailSender.send(mailMessage);}catch (Exception e) {log.error("發送郵件失敗", e);}}}

springboot mail插件發送郵件,配置如下(示例代碼在后面):

spring.mail.host=smtphz.qiye.163.com spring.mail.username=xxx@mydomain.com spring.mail.password=123456 spring.mail.port=25 spring.mail.protocol=smtp spring.mail.default-encoding=UTF-8 spring.mail.properties.mail.smtp.timeout=3000 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.debug=true spring.mail.properties.mail.smtp.ssl.enable=false spring.mail.properties.mail.imap.ssl.socketFactory.fallback=false spring.mail.properties.mail.smtp.ssl.socketFactory.class=javax.net.ssl.SSLSocketFactory spring.mail.properties.mail.smtp.starttls.enable=false spring.mail.properties.mail.smtp.starttls.required=true

SSL加密

發送明文郵件時,需要設置好:

  • 協議(默認是smtp,可不用設置)
  • host
  • 端口(默認情況下,SSL加密使用456端口)
  • 用戶名
  • 密碼
  • 開啟身份驗證(mail.smtp.auth=true)
  • 支持SSL加密(mail.smtp.ssl.enable = true)

網易企業郵箱 SSL 端口994

JavaMailSenderImpl發送郵件,示例代碼如下:

public class TestSendMail3 {private static Logger log = LoggerFactory.getLogger(TestSendMail3.class);public static void main(String[] args) throws Exception {JavaMailSenderImpl mailSender = new JavaMailSenderImpl();mailSender.setHost("smtphz.qiye.163.com");mailSender.setPort(994);mailSender.setUsername("xxx@mydomain.com");mailSender.setPassword("123456");Properties javaMailProperties = mailSender.getJavaMailProperties();javaMailProperties.setProperty("mail.smtp.auth", "true"); javaMailProperties.setProperty("mail.debug", "true");//啟用調試javaMailProperties.setProperty("mail.smtp.timeout", "3000"); //設置超時時間3秒javaMailProperties.setProperty("mail.smtp.starttls.enable", "false");javaMailProperties.setProperty("mail.smtp.starttls.required", "false");javaMailProperties.setProperty("mail.smtp.ssl.enable", "true");javaMailProperties.setProperty("mail.imap.ssl.socketFactory.fallback", "false");javaMailProperties.setProperty("mail.smtp.ssl.socketFactory.class", "javax.net.ssl.SSLSocketFactory");mailSender.setJavaMailProperties(javaMailProperties);try{MimeMessage mailMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mailMessage, true, "UTF-8");helper.setFrom("xxx@mydomain.com");helper.setTo("xxx@mydomain.com");helper.setSubject("測試郵件:您有一個新的未處理消息(使用SSL加密發送)");helper.setText(String.format("hi,%s: <br/><br/><br/>很高興認識你!", "張三"), true);mailSender.send(mailMessage);}catch (Exception e) {log.error("發送郵件失敗", e);}}}

springboot mail插件發送郵件,SSL加密,配置如下(示例代碼在后面):

spring.mail.host=smtphz.qiye.163.com spring.mail.username=xxx@mydomain.com spring.mail.password=123456 spring.mail.port=25 spring.mail.protocol=smtp spring.mail.default-encoding=UTF-8 spring.mail.properties.mail.smtp.timeout=3000 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.debug=true spring.mail.properties.mail.smtp.ssl.enable=true spring.mail.properties.mail.imap.ssl.socketFactory.fallback=false spring.mail.properties.mail.smtp.ssl.socketFactory.class=javax.net.ssl.SSLSocketFactory spring.mail.properties.mail.smtp.starttls.enable=false spring.mail.properties.mail.smtp.starttls.required=false

springboot mail插件發送郵件 示例

@RunWith(SpringRunner.class) @SpringBootTest(classes=Application.class) @TestPropertySource("classpath:application-TestSendMail3.properties") public class TestSendMail4 {private Logger log = LoggerFactory.getLogger(TestSendMail4.class);@Autowiredprivate JavaMailSenderImpl mailSender;@Testpublic void test01() {try{MimeMessage mailMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mailMessage, true, "UTF-8");helper.setFrom("xxx@mydomain.com");helper.setTo("xxx@mydomain.com");helper.setSubject("測試郵件:您有一個新的未處理消息(使用 spring boot 發送)");helper.setText(String.format("hi,%s: <br/><br/><br/>很高興認識你!", "張三"), true);mailSender.send(mailMessage);}catch (Exception e) {log.error("發送郵件失敗", e);}}}

application-TestSendMail3.properties

spring.mail.host=smtphz.qiye.163.com spring.mail.username=xxx@mydomain.com spring.mail.password=123456 spring.mail.port=25 spring.mail.protocol=smtp spring.mail.default-encoding=UTF-8 spring.mail.properties.mail.smtp.timeout=3000 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.debug=true spring.mail.properties.mail.smtp.ssl.enable=false spring.mail.properties.mail.imap.ssl.socketFactory.fallback=false spring.mail.properties.mail.smtp.ssl.socketFactory.class=javax.net.ssl.SSLSocketFactory spring.mail.properties.mail.smtp.starttls.enable=false spring.mail.properties.mail.smtp.starttls.required=true

其它

網易企業郵箱從這里 查協議、host、端口

https://qiye.163.com/help/client.html?device=pc

網易企業郵箱錯誤碼: 420 ERR.LOGIN.DOMAINNOTEXIST 錯誤

查到的host不對。按照前面的說明查host。

網易企業郵其它錯誤碼

"ERR.LOGIN.USERORPASSNULL":"參數錯誤:用戶名或者密碼為空", "ERR.LOGIN.DOMAINNULL":"參數錯誤:未指定的域郵箱參數", "ERR.LOGIN.PASSERR":"用戶名和密碼不匹配", "ERR.LOGIN.ILLEGALACCOUNT":"該帳號屬于群發名單或者別名,不允許登錄", "ERR.LOGIN.USERNOTEXIST":"該帳號不存在,請你確認域名和帳號", "ERR.LOGIN.SUPERADMINDOMAINERR":"該超級管理員并未申請任何域名郵箱", "ERR.LOGIN.SYSTEMBUSY":"登錄系統繁忙,請你稍后再試", "ERR.LOGIN.IPDENY":"登錄失敗,你的IP在黑名單中,請你聯系客服", "ERR.LOGIN.USRSTATUS1":"該帳號已被禁用,請聯系管理員", "ERR.LOGIN.USRSTATUS2":"帳號已過期,請聯系管理員", "ERR.LOGIN.USRSTATUS5":"該帳號已被管理員刪除,請聯系管理員", "SUC.LOGIN.USRUNLOCK":"該帳號已解除凍結狀態,請你再次輸入用戶和密碼繼續", "ERR.LOGIN.DOMAINEXPED":"該域名郵箱已經過期了", "ERR.LOGIN.DOMAINNOTREGISTER":"該域名尚未通過,請以超級管理員登錄", "ERR.LOGIN.DOMAINSTATUS1":"該域名郵箱已被禁用,請你聯系客服", "ERR.SESSIONNULL":"會話已經失效,請你重新登錄操作", "ERR.SYSTEM":"系統繁忙,請你稍后再試", "ERR.ADMINREQUIRE":"非法權限,該帳號無法執行這個操作", "ERR.PARAMNULL":"系統發生錯誤:參數為空", "ERR.ERR.PARAMTOOLONG":"參數過長", "ERR.ILLEGAL":"系統非法操作"。

總結

以上是生活随笔為你收集整理的springboot mail插件/JavaMailSenderImpl 发邮件。163网易企业邮箱调用的坑。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。