java发邮件工具

java的mail.jar包是一个集成的发送邮件的工具,只需要我们简单的封装一下,就可以作为自己的发送邮件的工具类,直接上代码。

import java.util.Properties;

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

/**
 * java发邮件工具
 * 
 * @author DG
 *
 */
public class JavaMailer {

    public static void main(String[] args) throws Exception {

        // 配置发送邮件的环境属性
        final Properties props = new Properties();
        /*
         * 可用的属性: mail.store.protocol / mail.transport.protocol / mail.host /
         * mail.user / mail.from
         */
        // 表示SMTP发送邮件,需要进行身份验证
        props.put("mail.smtp.auth", "true");
        /**这里如果是普通的163邮箱的话,发件服务器为:smtp.163.com,
        如果是企业邮箱的话发件服务器是:smtp.qiye.163.com
        */
        props.put("mail.smtp.host", "smtp.ym.163.com");
        // 发件人的账号
        props.put("mail.user", "[email protected]");
        // 访问SMTP服务时需要提供的密码
        props.put("mail.password", "************");

        // 构建授权信息,用于进行SMTP进行身份验证
        Authenticator authenticator = new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                // 用户名、密码
                String userName = props.getProperty("mail.user");
                String password = props.getProperty("mail.password");
                return new PasswordAuthentication(userName, password);
            }
        };
        // 使用环境属性和授权信息,创建邮件会话
        Session mailSession = Session.getInstance(props, authenticator);
        // 创建邮件消息
        MimeMessage message = new MimeMessage(mailSession);
        // 设置发件人
        InternetAddress form = new InternetAddress(
                props.getProperty("mail.user"));
        message.setFrom(form);

        // 设置收件人
        InternetAddress to = new InternetAddress("[email protected]");
        message.setRecipient(RecipientType.TO, to);

        // 设置抄送
        // InternetAddress cc = new InternetAddress("[email protected]");
        // message.setRecipient(RecipientType.CC, cc);

        // 设置密送,其他的收件人不能看到密送的邮件地址
        // InternetAddress bcc = new InternetAddress("[email protected]");
        // message.setRecipient(RecipientType.CC, bcc);

        // 设置邮件标题
        message.setSubject("测试邮件");

        // 设置邮件的内容体
        message.setContent("

测试的HTML邮件

"
, "text/html;charset=UTF-8"); // 发送邮件 Transport.send(message); } }

需要注意:如果报错,一般都是 535 Error: authentication failed ,说明要么是邮箱账号和密码错误,要么是发件服务器有问题。

你可能感兴趣的:(java小记)