我使用qq服务发送邮件的,这之前需要打开pop服务并且获取授权码,如何打开并获取可百度
导包:
java文件:
package crm.java.jobs;
import java.util.List;
import java.util.Properties;
import javax.annotation.Resource;
import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.sun.mail.util.MailSSLSocketFactory;
import crm.java.mapper.QpWorkbillMapper;
import crm.java.pojo.QpWorkbill;
public class MailJob {
@Resource
private QpWorkbillMapper qpWorkbillMapper;
private String username;
private String password;
private String smtpServer;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void execute() {
try {
//查询工单类型为新单的所有工单
List<QpWorkbill> list = qpWorkbillMapper.findNewWorkbills();
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
if(null != list && list.size() > 0){
final Properties mailProps = new Properties();
mailProps.put("mail.smtp.host", this.getSmtpServer());
mailProps.put("mail.smtp.auth", "true");
mailProps.put("mail.smtp.ssl.enable", "true");
mailProps.put("mail.smtp.ssl.socketFactory", sf);
mailProps.put("mail.username", this.getUsername());
mailProps.put("mail.password", this.getPassword());
// 构建授权信息,用于进行SMTP进行身份验证
Authenticator authenticator = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
// 用户名、密码
String userName = mailProps.getProperty("mail.username");
String password = mailProps.getProperty("mail.password");
return new PasswordAuthentication(userName, password);
}
};
// 使用环境属性和授权信息,创建邮件会话
Session mailSession = Session.getInstance(mailProps, authenticator);
for(QpWorkbill workbill : list){
// 创建邮件消息
MimeMessage message = new MimeMessage(mailSession);
// 设置发件人
InternetAddress from = new InternetAddress(mailProps.getProperty("mail.username"));
message.setFrom(from);
// 设置收件人
InternetAddress to = new InternetAddress("1870840630@qq.com");
message.setRecipient(RecipientType.TO, to);
// 设置邮件标题
message.setSubject("系统邮件:新单通知");
// 设置邮件的内容体
message.setContent(workbill.toString(), "text/html;charset=UTF-8");
// 发送邮件
Transport.send(message);
workbill.setPickstate(QpWorkbill.PICKSTATE_RUNNING);
qpWorkbillMapper.updateByPrimaryKeySelective(workbill);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
public String getSmtpServer() {
return smtpServer;
}
public void setSmtpServer(String smtpServer) {
this.smtpServer = smtpServer;
}
}