网站经常需要提供邮箱注册提示功能,javamail包提供了很多邮件发送和接受功能类,不过使用javamail,一般都要进行一些简单的配置,这里简单配置一下使用javamail发送邮件,
具体看类注释说明。
import java.io.InputStream;
import java.util.Properties;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class BlogMail {
public static void sendmail(String subject,String content,String address)throws Exception
{
/*载入配置文件 javamail库默认会从配置文件中加载配置,当然也可以手动配置*/
Properties pro=new Properties();
/*这里是举例,使用java默认的properties文件格式*/
InputStream is=BlogMail.class.getClassLoader().getResourceAsStream("config/mail.properties");
pro.load(is);
//pro.setProperty("mail.smtp.auth","true");
//认证模式
//pro.setProperty("mail.transport.protocol","smtp");
//pro.setProperty("mail.smtp.host","smtp.exmail.qq.com");
//连接协议
/*根据配置文件生成一个session环境对象*/
Session session=Session.getInstance(pro);
/*使用smtp协议获取session环境的Transprot对象来发送邮件 javamial使用Transport对象来管理发送邮件服务*/
Transport tran=session.getTransport("smtp");
/*链接邮箱服务器,host是你的邮箱服务器 如:sina.smtp.com*/
tran.connect(pro.getProperty("mail.smtp.host"),pro.getProperty("username"),pro.getProperty("password"));
/*创建一个扩展信息对象,用来包装要发送的多媒体信息格式,也可以只是简单的文本*/
MimeMessage msg=new MimeMessage(session);
/*设置Content 浏览器解析编码和格式等*/
msg.setContent(content,"text/html;charset=utf-8");
/*设置内容体 这里仅仅是简单的html文本*/
msg.setSubject(subject);
/*设置发送邮件方 地址*/
msg.setFrom(new InternetAddress(pro.getProperty("username")));
/*SendMessage方法第一个参数是邮件对象,第二个是发送的邮件地址数组。InternetAddress.parse(address)方法解析返回一个地址数组*/
tran.sendMessage(msg,InternetAddress.parse(address));
tran.close();
}
}
mail.smtp.auth=true
mail.smtp.localhost=blog.xxx.net
mail.smtp.host=smtp.exmail.qq.com
mail.transport.protocol=smtp
username=blog@xx.com
password=5xxxx
localhost是配置一个linux主机下的主机,因为linux有时候解析不了本地localhost域名。
auth是针对邮箱服务器是否采取认证模式,有些邮箱服务器必须要认证模式才行。
mail.smtp.host是发送邮箱的服务器。
下载 mail jar包