1.须要的jar :mail.jar,activation.jar
2.QQ邮箱设置:设置 -帐户-开启服务:
3.注意点: 若用QQ邮箱,有发送次数限制的,发了一次后,就停了。建议用企业邮箱。
5.相关代码:server验证与处理代码
package com.jack.mail;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MailVConstructor {
private Properties props = null;
private Authenticator authenticator=null;
private Session session = null;
private MimeMessage message = null;
public Properties createProperties(String host ){
Properties p = System.getProperties();;
p.put("mail.smtp.localhost", "localhost");
p.put("mail.smtp.auth", "true");/*打开验证*/
p.put("mail.smtp.host", host);
return p;
}
public Authenticator crateAuthenticator(String from ,String passWord){
Authenticator authenticator = new MailAuthenticator(from, passWord);
return authenticator;
}
public Session createSession(Properties props,Authenticator authenticator){
Session session = Session.getDefaultInstance(props, authenticator);
return session;
}
public MimeMessage createMessage(Session session){
MimeMessage message = new MimeMessage(session);
return message;
}
/**
*
* @param host 发送邮件的server
* @param from 发送邮件的地址 ,如 :xxxxxxxx@qq.com
* @param pwd 发送邮件的(用户)password *************
* @param to 接收邮件的地址
* @param subject 邮件的标题
* @param text 邮件的内容
*/
public void sendMail(String host,String from,String pwd,String to,String subject,String text){
props= createProperties(host);
authenticator = crateAuthenticator(from,pwd);
session = createSession(props,authenticator);
message = createMessage(session);
try {
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);/*邮件主题*/
message.setText(text);/*邮件内容*/
// 发送message
Transport.send(message);
System.out.println("已成功发送给 :"+to);
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
package com.jack.mail;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class MailAuthenticator extends Authenticator {
String authenName; // username
String authenPass; // password
public MailAuthenticator(String authenName, String authenPass) {
super();
this.authenName = authenName;
this.authenPass = authenPass;
}
/* 若server须要身份认证,Sission会自己主动调用这种方法 */
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(authenName, authenPass);
}
}
測试类
package com.jack.mail;
public class TestMail {
public static void main(String args[]) {
String subject = "測试标题";
String text = "邮件内容";
MailVConstructor mc = new MailVConstructor();
mc.sendMail("smtp.exmail.qq.com", "jacklei2@baletu.com", "leixuan1225", "15618222119@qq.com", subject, text);
}
}
结果: