本文为SMTP邮件投递代码Java调用示例。
阿里邮箱配置
SMTP服务器地址:smtp.sg.aliyun.com
端口:非加密25, SSL加密465
//pom.xml添加javax.mail的引用,或者项目引入javax.mail的jar包
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.security.Security;
import java.util.Date;
import java.util.Properties;
public class QiyeMailSend {
public static void main(String[] args) {
try{
//设置SSL连接、邮件环境
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
Properties props = System.getProperties();
//协议
//props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.host", "smtp.sg.aliyun.com");//smtp服务器地址
//props.setProperty("mail.smtp.port", "25");//非加密端口
// 使用ssl加密方式,进行如下配置:
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.setProperty("mail.smtp.auth", "true");//表示SMTP发送邮件,需要进行身份验证
props.setProperty("mail.smtp.from", "发件人地址");//mailfrom 参数
props.setProperty("mail.user","发件人地址");//发件人的账号
props.setProperty("mail.password","发件人密码");// 发件人的账号的密码,如果开启三方客户端安全密码请使用新生产的密码
//建立邮件会话
Session session = Session.getDefaultInstance(props, new Authenticator() {
//身份认证
protected PasswordAuthentication getPasswordAuthentication() {
//发件人的账号、密码
String userName = props.getProperty("mail.user");
String password = props.getProperty("mail.password");
return new PasswordAuthentication(userName, password);
}
});
//建立邮件对象
MimeMessage message = new MimeMessage(session);
//设置邮件的发件人
InternetAddress from = new InternetAddress("发件人地址","发件人名称"); //from 参数,可实现代发,注意:代发容易被收信方拒信或进入垃圾箱。
message.setFrom(from);
//设置邮件的收件人
String[] to = {"收件人地址1","收件人地址2","收件人地址3"};//收件人列表
InternetAddress[] sendTo = new InternetAddress[to.length];
for (int i=0;i<to.length;i++){
//System.out.println("发送到:" + to[i]);
sendTo[i] = new InternetAddress(to[i]);
}
//传入收件人
message.setRecipients(Message.RecipientType.TO,sendTo);
//设置邮件的主题
message.setSubject("邮件主题");
//设置邮件的文本
String content="邮件内容";
message.setContent(content,"text/html;charset=UTF-8");
//设置时间
message.setSentDate(new Date());
message.saveChanges();
//发送邮件
Transport.send(message);
System.out.println("发送成功!");
}catch(Exception e){
System.out.println("异常:"+e.toString());
}
}
}