邮箱注册(二) -- 工具类封装
今天我们捞干的, 不唠嗑, 拿走不谢
package sp.util.mail;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
public class MailUtils {
public static void sendMail(String emailTo, String emailMsg)
throws AddressException, MessagingException {
// 1.创建一个程序与邮件服务器会话对象 Session
Properties props = System.getProperties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.host", "smtp.qq.com"); //发邮件的服务器地址
props.setProperty("mail.smtp.auth", "true");//需要验证,不验证会提示没有权限发送
//QQ邮箱需要下面这段代码,163邮箱不需要
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
try {
Session session = Session.getDefaultInstance(props, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
// 发件人邮箱账号、授权码
return new PasswordAuthentication("发送邮箱", "发送邮箱的授权码");
}
});
// 2.创建一个Message,它相当于是邮件内容
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("发送邮箱")); // 设置发送者
message.setRecipient(RecipientType.TO, new InternetAddress(emailTo)); // 设置发送方式与接收者
message.setSubject("账号激活");
// message.setText("这是一封激活邮件,请<a href='#'>点击</a>");
message.setContent(emailMsg, "text/html;charset=utf-8");
// 3.创建 Transport用于将邮件发送
Transport.send(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
简单说两句
这个工具类通用所有邮箱进行发送, 注意我说的时发送, 接收还是单一接收状态, 即收件箱取决于你发件邮箱类型.
另外, 下面这个决定了你的邮件展示内容, 如果仅仅发送邮箱消息, 不掺杂其他图片,音频等文件 你可以直接实例化Message
Message message = new MimeMessage(session);
如果你想让邮件有一个html格式或者发送其他类型的邮件那么必须 使用MimeMessage!
如果还有其他疑问请参考第一篇: 邮箱注册(一)