本文為SMTP郵件投遞代碼Java調(diào)用示例。
SMTP服務(wù)器地址:smtp.sg.aliyun.com
端口:非加密25, SSL加密465
//pom.xml添加javax.mail的引用,或者項(xiàng)目引入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{ //設(shè)置SSL連接、郵件環(huán)境 Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; Properties props = System.getProperties(); //協(xié)議 //props.setProperty("mail.transport.protocol", "smtp"); props.setProperty("mail.smtp.host", "smtp.sg.aliyun.com");//smtp服務(wù)器地址 //props.setProperty("mail.smtp.port", "25");//非加密端口 // 使用ssl加密方式,進(jìn)行如下配置: 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發(fā)送郵件,需要進(jìn)行身份驗(yàn)證 props.setProperty("mail.smtp.from", "發(fā)件人地址");//mailfrom 參數(shù) props.setProperty("mail.user","發(fā)件人地址");//發(fā)件人的賬號(hào) props.setProperty("mail.password","發(fā)件人密碼");// 發(fā)件人的賬號(hào)的密碼,如果開啟三方客戶端安全密碼請(qǐng)使用新生產(chǎn)的密碼 //建立郵件會(huì)話 Session session = Session.getDefaultInstance(props, new Authenticator() { //身份認(rèn)證 protected PasswordAuthentication getPasswordAuthentication() { //發(fā)件人的賬號(hào)、密碼 String userName = props.getProperty("mail.user"); String password = props.getProperty("mail.password"); return new PasswordAuthentication(userName, password); } }); //建立郵件對(duì)象 MimeMessage message = new MimeMessage(session); //設(shè)置郵件的發(fā)件人 InternetAddress from = new InternetAddress("發(fā)件人地址","發(fā)件人名稱"); //from 參數(shù),可實(shí)現(xiàn)代發(fā),注意:代發(fā)容易被收信方拒信或進(jìn)入垃圾箱。 message.setFrom(from); //設(shè)置郵件的收件人 String[] to = {"收件人地址1","收件人地址2","收件人地址3"};//收件人列表 InternetAddress[] sendTo = new InternetAddress[to.length]; for (int i=0;i<to.length;i++){ //System.out.println("發(fā)送到:" + to[i]); sendTo[i] = new InternetAddress(to[i]); } //傳入收件人 message.setRecipients(Message.RecipientType.TO,sendTo); //設(shè)置郵件的主題 message.setSubject("郵件主題"); //設(shè)置郵件的文本 String content="郵件內(nèi)容"; message.setContent(content,"text/html;charset=UTF-8"); //設(shè)置時(shí)間 message.setSentDate(new Date()); message.saveChanges(); //發(fā)送郵件 Transport.send(message); System.out.println("發(fā)送成功!"); }catch(Exception e){ System.out.println("異常:"+e.toString()); } } }