网站经常需要提供邮箱注册提示功能,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.properties文件:
- 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包