要在网络上文现邮件功能。必须要有专门的邮件服务器。
SMTP服务器地址:我们这里用的QQ的邮件是smtp.qq.com
使用Java发送E-mail十分简单,首先你应该准备JavaMail API和Java Activation Framework。
得到两个jar包:
然后去qq邮箱开启发送邮件POP3/SMTP服务
开启之后会生成一个授权码,这个记得保存下来
然后就是建一个测试类
import com.sun.mail.util.MailSSLSocketFactory;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.security.GeneralSecurityException;
import java.util.Properties;
//发送一封简单的邮件
public class MailDemo01 {
public static void main(String[] args) throws Exception {
//创建一封邮件
Properties prop = new Properties();
prop.setProperty( "mail.host", "smtp.qq.com");//设置QQ邮件服务器
prop.setProperty("mail.transport.protocol", "smtp");// 邮件发送协议
prop.setProperty( "mail.smtp.auth", "true");//需要验证用户名密码
//关于QQ邮箱,还要设置SSL加密,加上以下代码即可
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable","true");
prop.put( "mail.smtp.ssl.socketFactory", sf);
//使用JavaMail发送邮件的5个步骤
//1、创建定义整个应用程序所需的环境信息的Session对象
//QQ独有的
Session session = Session.getDefaultInstance(prop,new Authenticator() {
public PasswordAuthentication getPasswordAuthentication( ) {
//发件人邮件用户名、授权码
return new PasswordAuthentication( "自己的qq邮箱xx@qq.com","授权码");//授权码在刚开启的时候生成,也可以后续生成
}
});
//开启Session的debug模式,这样可以查看程序发送Email的运行状态
session.setDebug(true);
//2、通过session得到transport对象
Transport ts = session.getTransport();
//3、使用邮箱的用户名和授权码连上邮件服务器
ts.connect("smtp.qq.com","自己的qq邮箱xx@qq.com","blxhyxjzteywcagf");
//4、创建邮件
//注意需要传递session
MimeMessage message = new MimeMessage( session);
//指明邮件的发件人
message.setFrom(new InternetAddress("自己的qq邮箱xx@qq.com"));
//指明邮件的收件人,也可以发给自己
message.setRecipient(Message.RecipientType.TO,new InternetAddress("别人的qq邮箱xx@qq.com"));
//邮件的标题
message.setSubject("这是一个测试邮件");//
//邮件内容
message.setContent("<h1>你好呀!</h1>","text/html;charset=UTF-8");
//5、发送邮件
ts.sendMessage(message,message.getAllRecipients());
//关闭连接
ts.close();
}
}
//运行以上代码就可以实现简单的邮件发送了