用java代码实现发送邮件,需要用到一个mail.jar包
oracle官网下载地址
想想使用客户端发送步骤
-->打开客户端(设置登录账户)
-->新建邮件(设置接收地址)
-->发送
其实用代码实现与以上方式基本差不多
-->初始化虚拟客户端(设置登录账户)
-->新建邮件对象(设置接收地址,发送地址)
-->发送
下面一个完整的发送例子
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
public class MailTest {
public static void main(String[] args) throws Exception {
//基本参数
Properties prop = new Properties();
prop.put("mail.smtp.host","smtp.qq.com");
prop.put("mail.smtp.auth","true");
prop.put("mail.smtp.starttls.enable","true");
//通过基本参数和登录账号构建一个虚拟的客户端(我是这样想的)
//Auth类是用来验证邮箱的切需要继承并重写Authenticator(和发送账号一致)
Session session = Session.getDefaultInstance(prop, new Auth("295490665@qq.com", "***********"));
Transport smtp = session.getTransport("smtp");
//这边构建邮件体(设置发送地址和收件地址可以是多个)
MimeMessage mes = new MimeMessage(session);
InternetAddress from = new InternetAddress("295490665@qq.com");
mes.setFrom(from);
//收件方
InternetAddress to = new InternetAddress("wangbingit@outlook.com");
mes.setRecipient(Message.RecipientType.TO,to);
//设置具体内容了
mes.setSubject("Test");
mes.setContent("TestContent","text/html");
//以上2处设置好后,就可以连接发送关闭连接
smtp.connect();
smtp.sendMessage(mes,mes.getRecipients(Message.RecipientType.TO));
smtp.close();
}
}
/**
* 验证
*/
class Auth extends Authenticator {
private String userName;
private String password;
public Auth(String userName, String password) {
this.userName = userName;
this.password = password;
}
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(userName,password);
}
}