最近在做一个与OA系统的邮箱接口,在测试代码的时候,分别用了126邮箱和QQ邮箱发送邮件,126邮箱可以成功发送,QQ就总是报错,虽然后来成功部署与OA邮箱接口,但是总想找到QQ邮箱发送不成功的原因,今天又在网上找资料,终于实现了QQ邮箱成功发送。
QQ邮箱服务器如下:
刚开始用25端口,怎么弄都是报错,网上好多帖子都说之前实现过,不过之前成功的代码现在运行后都报错,就选择用SSL加密方式实现。
具体代码如下:
一 、创建类 SimpleMailSender
package testMailQq;import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart; /**
* 简单邮件(不带附件的邮件)发送器
*/
public class SimpleMailSender {/** * 以文本格式发送邮件 * @param mailInfo 待发送的邮件的信息 */ public boolean sendTextMail(MailSenderInfo mailInfo) { // 判断是否需要身份认证 MyAuthenticator authenticator = null; Properties pro = mailInfo.getProperties(); if (mailInfo.isValidate()) { // 如果需要身份认证,则创建一个密码验证器 authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword()); } // 根据邮件会话属性和密码验证器构造一个发送邮件的session Session sendMailSession = Session.getInstance(pro,authenticator); try { // 根据session创建一个邮件消息 Message mailMessage = new MimeMessage(sendMailSession); // 创建邮件发送者地址 Address from = new InternetAddress(mailInfo.getFromAddress()); // 设置邮件消息的发送者 mailMessage.setFrom