使用Javamail实现邮件发送功能

目录

  • 相关的包
  • 编写工具类
  • 环境说明

@(使用Javamail实现邮件发送功能)

相关的包

  1. activation.jar
  2. javax.mail.jar
    mail包建议使用高版本写的包,否则可能会发空白邮箱(亲身经历╯︿╰)
    Javamail的GitHub项目地址:https://github.com/javaee/javamail/releases
    这样就可以用高版本的包了(~ ̄▽ ̄)~

    若使用QQ邮箱或非自建邮箱则开启SMTP服务

    QQ邮箱在设置-账号,中可开启
    使用Javamail实现邮件发送功能_第1张图片
    开启后的
    接收邮件服务器:imap.qq.com,使用SSL,端口号993
    发送邮件服务器:smtp.qq.com,使用SSL,端口号465或587
    账户名:QQ邮箱账户名(如果是VIP帐号或Foxmail帐号,账户名需要填写完整的邮件地址)

开启后可获取授权码,授权码可作为发送方邮箱的密码

编写工具类

/**
 * 邮件发送工具类
 * 注:需使用高版本些的javamail,否则可能出现邮件标题和内容为空
 *
 */
public class MailUitl {
    /**
     * 发送邮件的方法
     * @param to    :收件人
     * @param code  :激活码
     */
    public static void sendMail(String to,String code){
        /**
         * 1.获得一个Session对象.
         * 2.创建一个代表邮件的对象Message.
         * 3.发送邮件Transport
         */
        // 1.获得连接对象
        Properties props = new Properties();
        //这里使用了QQ邮箱
        props.setProperty("mail.host", "smtp.qq.com");
        //设置端口,这里可以不设置,如是用自己的邮箱服务器则需设置
        //props.setProperty("mail.smtp.port", "465");
        props.put("mail.smtp.auth", "true");
        Session session = Session.getInstance(props, new Authenticator() {

            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
            //这里xxxxxxxx是qq邮箱的授权码
                return new PasswordAuthentication("[email protected]", "xxxxxxxxxxxx");
            }
        });
        // 2.创建邮件对象:
        Message message = new MimeMessage(session);
        // 设置发件人:
        try {
            message.setFrom(new InternetAddress("[email protected]"));
            // 设置收件人:
            message.addRecipient(RecipientType.TO, new InternetAddress(to));
            // 设置标题
            message.setSubject("来自xxxxx的激活邮件");
            // 设置邮件正文:
            message.setContent("

xxxxxx激活邮件!点下面链接完成激活操作!

http://127.0.0.1:8080/manxcang/user_active.action?code="+code+"

", "text/html;charset=UTF-8"); // 3.发送邮件: Transport.send(message); } catch (AddressException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } } //测试 public static void main(String[] args) { sendMail("[email protected]","11111111111111"); } }

环境说明

以上都是在jdk1.8环境下运行有效

你可能感兴趣的:(使用Javamail实现邮件发送功能)