通过javaMail发送邮件

最近工作比较闲,出于个人兴趣,写了个发送邮件的工具类。本次是通过163邮箱发送邮件,

相关jar包:javax.mail.*

package com.youxu.util;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

public class MailUtils {
    /** * 这是一个工具类,各方面都兼容 * * @param to * 收件人邮箱 * @param code * 必要时的用户验证 * @throws Exception */
    public static void sendMail(String to, String code) throws Exception {
        Properties props = new Properties();
        // 设置服务器
        props.setProperty("mail.smtp.host", "smtp.163.com");
        // 设置权限,这是由于163.126.等等,公共邮件为了发垃圾邮件需要设置的,
        // 不然会报异常,553 authentication is
        // required,smtp13,EcCowACXHjuxivpVRZHkCA--.51163S2 1442482875
        props.put("mail.smtp.auth", "true");
        // 1.Session对象.连接(与邮箱服务器连接)
        Session session = Session.getInstance(props, new Authenticator() {

            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                // 设置发邮件帐号和密码
                return new PasswordAuthentication("y****@163.com", "*****");
            }

        });

        // 2.构建邮件信息:
        Message message = new MimeMessage(session);
        // 发件人:
        message.setFrom(new InternetAddress("***@163.com"));
        // 收件人:
        message.setRecipient(RecipientType.TO, new InternetAddress(to));
        // 设置邮件的标题
        message.setSubject("******");
        // 设置正文,通过HTML标签设置内容格式
        message.setContent("<h1>*********</h1><h3>***********</h3>",
                "text/html;charset=UTF-8");

        // 3.发送对象
        Transport.send(message);
    }
}

代码简单明了,只需调用即可,参数看情况添加,

与大家共勉,谢谢!!!

你可能感兴趣的:(java,邮件,javamail)