Java发送邮件

首先需要添加javax.mail-1.4.5.jar的引用。

然后用下面的main代码就可以了。

package org.lyk.main;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message.RecipientType;
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;

public class Main
{

    public static void main(String[] args) throws Exception
    {
        try
        {
            // 配置发送邮件的环境属性
            final Properties props = new Properties();
            /*
             * 可用的属性: mail.store.protocol / mail.transport.protocol / mail.host
             * / mail.user / mail.from
             */
            // 表示SMTP发送邮件,需要进行身份验证
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.host", "smtp.163.com");
            // 发件人的账号
            props.put("mail.user", "XXXX@163.com");
            // 访问SMTP服务时需要提供的密码
            props.put("mail.password", "XXXX");
            

            // 构建授权信息,用于进行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("xxxx@qq.com");
            message.setRecipient(RecipientType.TO, to);

            // 设置抄送
            InternetAddress cc = new InternetAddress("xxxx@qq.com");
            message.setRecipient(RecipientType.CC, cc);

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

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

            // 设置邮件的内容体
            message.setContent("<h1>这是测试邮件. 与其苟延残喘,不如从容燃烧~~~<br /> This is used for testing purpose</h1>", "text/html;charset=UTF-8");

            // 发送邮件
            Transport.send(message);
        } catch (Exception e)
        {
            e.printStackTrace();
        }

        System.out.println("///~ Main done");
    }

}

 

posted on 2016-10-08 09:09  kuillldan  阅读(144)  评论(0编辑  收藏  举报