700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > springboot mail插件/JavaMailSenderImpl 发邮件。163网易企业邮箱调用的坑。

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

时间:2020-06-05 03:13:59

相关推荐

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

前言

spring boot 2.0.0.RELEASEspring 5.0.4.RELEASE网易企业邮箱 版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.");mailSender.setPort(25);mailSender.setUsername("xxx@");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@");helper.setTo("xxx@");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.spring.mail.username=xxx@spring.mail.password=123456spring.mail.port=25spring.mail.protocol=smtpspring.mail.default-encoding=UTF-8spring.mail.properties.mail.smtp.timeout=3000spring.mail.properties.mail.smtp.auth=truespring.mail.properties.mail.debug=truespring.mail.properties.mail.smtp.ssl.enable=falsespring.mail.properties.mail.imap.ssl.socketFactory.fallback=falsespring.mail.properties.mail.smtp.ssl.socketFactory.class=.ssl.SSLSocketFactoryspring.mail.properties.mail.smtp.starttls.enable=falsespring.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.");mailSender.setPort(25);mailSender.setUsername("xxx@");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", ".ssl.SSLSocketFactory");mailSender.setJavaMailProperties(javaMailProperties);try{MimeMessage mailMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mailMessage, true, "UTF-8");helper.setFrom("xxx@");helper.setTo("xxx@");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.spring.mail.username=xxx@spring.mail.password=123456spring.mail.port=25spring.mail.protocol=smtpspring.mail.default-encoding=UTF-8spring.mail.properties.mail.smtp.timeout=3000spring.mail.properties.mail.smtp.auth=truespring.mail.properties.mail.debug=truespring.mail.properties.mail.smtp.ssl.enable=falsespring.mail.properties.mail.imap.ssl.socketFactory.fallback=falsespring.mail.properties.mail.smtp.ssl.socketFactory.class=.ssl.SSLSocketFactoryspring.mail.properties.mail.smtp.starttls.enable=falsespring.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.");mailSender.setPort(994);mailSender.setUsername("xxx@");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", ".ssl.SSLSocketFactory");mailSender.setJavaMailProperties(javaMailProperties);try{MimeMessage mailMessage = mailSender.createMimeMessage();MimeMessageHelper helper = new MimeMessageHelper(mailMessage, true, "UTF-8");helper.setFrom("xxx@");helper.setTo("xxx@");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.spring.mail.username=xxx@spring.mail.password=123456spring.mail.port=25spring.mail.protocol=smtpspring.mail.default-encoding=UTF-8spring.mail.properties.mail.smtp.timeout=3000spring.mail.properties.mail.smtp.auth=truespring.mail.properties.mail.debug=truespring.mail.properties.mail.smtp.ssl.enable=truespring.mail.properties.mail.imap.ssl.socketFactory.fallback=falsespring.mail.properties.mail.smtp.ssl.socketFactory.class=.ssl.SSLSocketFactoryspring.mail.properties.mail.smtp.starttls.enable=falsespring.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@");helper.setTo("xxx@");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.spring.mail.username=xxx@spring.mail.password=123456spring.mail.port=25spring.mail.protocol=smtpspring.mail.default-encoding=UTF-8spring.mail.properties.mail.smtp.timeout=3000spring.mail.properties.mail.smtp.auth=truespring.mail.properties.mail.debug=truespring.mail.properties.mail.smtp.ssl.enable=falsespring.mail.properties.mail.imap.ssl.socketFactory.fallback=falsespring.mail.properties.mail.smtp.ssl.socketFactory.class=.ssl.SSLSocketFactoryspring.mail.properties.mail.smtp.starttls.enable=falsespring.mail.properties.mail.smtp.starttls.required=true

其它

网易企业邮箱从这里 查协议、host、端口

/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":"系统非法操作"。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。