spring开发邮件设置及注意事项

spring开发邮件设置及注意事项

常见的电子邮件协议有以下几种:SMTP(简单邮件传输协议)、POP3(邮局协议)、IMAP(Internet邮件访问协议)。这几种协议都是由TCP/IP协议族定义的。

  • SMTP(Simple Mail Transfer Protocol):SMTP主要负责底层的邮件系统如何将邮件从一台机器传至另外一台机器。
  • POP(Post Office Protocol):版本为POP3,POP3是把邮件从电子邮箱中传输到本地计算机的协议。
  • IMAP(Internet Message Access Protocol):版本为IMAP4,是POP3的一种替代协议,提供了邮件检索和邮件处理的新功能,这样用户可以完全不必下载邮件正文就可以看到邮件的标题摘要,从邮件客户端软件就可以对服务器上的邮件和文件夹目录等进行操作。IMAP协议增强了电子邮件的灵活性,同时也减少了垃圾邮件对本地系统的直接危害,同时相对节省了用户察看电子邮件的时间。除此之外,IMAP协议可以记忆用户在脱机状态下对邮件的操作(例如移动邮件,删除邮件等)在下一次打开网络连接的时候会自动执行。

开发中默认的协议就是SMTP

我本地用163邮箱进行测试,通过,代码如下

JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); 

//设定mail server 
senderImpl.setHost("smtp.163.com"); 

//邮件的默认设置协议是`smtp`,端口`25`
//senderImpl.setPort(25); 
//senderImpl.setProtocol("smtp");
//建立邮件消息,发送简单邮件和html邮件的区别 
MimeMessage mailMessage = senderImpl.createMimeMessage(); 
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage); 

//设置收件人,寄件人 
messageHelper.setTo("Rick.Xu@movit-tech.com"); 
messageHelper.setFrom("jkxyx205@163.com"); 
messageHelper.setSubject("这个是主题"); 
//true 表示启动HTML格式的邮件 
messageHelper.setText("<html><head></head><body><h1>hello!!spring html Mail</h1></body></html>",true); 
senderImpl.setUsername("jkxyx205@163.com") ; //设置username
//      senderImpl.setPassword("xxx") ; // 设置password

//发送邮件 
senderImpl.send(mailMessage); 

System.out.println("邮件发送成功..."); 

生产环境,客户给出的邮件配置信息

host:10.32.186.111
port:25
sender:support@abc.net
pwd:空

相应的设置只需要修改host,端口和协议默认即可

senderImpl.setHost("10.32.186.111"); 
messageHelper.setFrom("support@abc.net"); 

这时候会抛出异常:

org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail.AuthenticationFailedException: failed to connect, no password specified?

异常给出的提示,说密码不能为空,做如下设置就可以使密码可以为空

Properties prop = new Properties() ;
prop.put("mail.smtp.auth", "false") ; // 如果这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
senderImpl.setJavaMailProperties(prop); 

常用的邮箱服务器(SMTP、POP3)地址、端口

gmail(google.com)
POP3服务器地址:pop.gmail.com(SSL启用 端口:995)
SMTP服务器地址:smtp.gmail.com(SSL启用 端口:587)

21cn.com: 
POP3服务器地址:pop.21cn.com(端口:110)
SMTP服务器地址:smtp.21cn.com(端口:25)

sina.com: 
POP3服务器地址:pop3.sina.com.cn(端口:110)
SMTP服务器地址:smtp.sina.com.cn(端口:25) 

tom.com: 
POP3服务器地址:pop.tom.com(端口:110)
SMTP服务器地址:smtp.tom.com(端口:25)

163.com: 
POP3服务器地址:pop.163.com(端口:110)
SMTP服务器地址:smtp.163.com(端口:25)

263.net: 
POP3服务器地址:pop3.263.net(端口:110)
SMTP服务器地址:smtp.263.net(端口:25)

yahoo.com: 
POP3服务器地址:pop.mail.yahoo.com
SMTP服务器地址:smtp.mail.yahoo.com

263.net.cn: 
POP3服务器地址:pop.263.net.cn(端口:110)
SMTP服务器地址:smtp.263.net.cn(端口:25)

Foxmail:
POP3服务器地址:POP.foxmail.com(端口:110)
SMTP服务器地址:SMTP.foxmail.com(端口:25)

sinaVIP  
POP3服务器:pop3.vip.sina.com (端口:110)
SMTP服务器:smtp.vip.sina.com (端口:25)

sohu.com: 
POP3服务器地址:pop3.sohu.com(端口:110)
SMTP服务器地址:smtp.sohu.com(端口:25)

etang.com: 
POP3服务器地址:pop.etang.com
SMTP服务器地址:smtp.etang.com

x263.net: 
POP3服务器地址:pop.x263.net(端口:110)
SMTP服务器地址:smtp.x263.net(端口:25)

yahoo.com.cn: 
POP3服务器地址:pop.mail.yahoo.com.cn(端口:995)
SMTP服务器地址:smtp.mail.yahoo.com.cn(端口:587)
雅虎邮箱POP3的SSL不启用端口为110,POP3的SSL启用端口995;SMTP的SSL不启用端口为25,SMTP的SSL启用端口为465

QQ邮箱                                       QQ企业邮箱           
POP3服务器地址:pop.qq.com(端口:110)            POP3服务器地址:pop.exmail.qq.com (SSL启用 端口:995)        
SMTP服务器地址:smtp.qq.com (端口:25)           SMTP服务器地址:smtp.exmail.qq.com(SSL启用 端口:587/465)
SMTP服务器需要身份验证

126邮箱                                      HotMail
POP3服务器地址:pop.126.com(端口:110)            POP3服务器地址:pop.live.com (端口:995)
SMTP服务器地址:smtp.126.com(端口:25)            SMTP服务器地址:smtp.live.com (端口:587)

china.com:                                   139邮箱
POP3服务器地址:pop.china.com(端口:110)         POP3服务器地址:POP.139.com(端口:110) 
SMTP服务器地址:smtp.china.com(端口:25)         SMTP服务器地址:SMTP.139.com(端口:25)