zoukankan      html  css  js  c++  java
  • java使用javax.mail进行免费的邮件发送

    1. 建议发送方使用阿里云邮箱https://mail.aliyun.com/,阿里云默认是开启个人邮箱pop3、smtp协议的,所以无需在阿里云邮箱里设置,pop3、smtp的密码默认邮箱登录密码,没有可以去申请一个。

    如果要使用别的邮箱,可以自行查询对应邮箱怎么开启smtp协议。

    2.pom.xml中引入javax.mail的jar包,这里使用1.4.7版本。

            <!-- javax mail -->
            <dependency>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
                <version>1.4.7</version>
            </dependency>

    3.新建MailSend类:

    package com.jarfk.util.email;
    
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeUtility;
    import java.io.File;
    import java.io.UnsupportedEncodingException;
    import java.util.Properties;
    
    /**
     * Created by Administrator on 2017/9/29 0029.
     */
    public class MailSend {
        private static final String EMAIL_OWNER_ADDR_HOST = "smtp.aliyun.com"; //smtp.163.com  smtp.aliyun.com  smtp.qq.com
        private static final String EMAIL_OWNER_ADDR = "xxx@aliyun.com";
        private static final String EMAIL_OWNER_ADDR_PASS = "xxx";
    
        public static void sendMail(String title, String email, String content) throws MessagingException {
            Properties prop = new Properties();
            prop.put("mail.host", EMAIL_OWNER_ADDR_HOST);
            prop.put("mail.transport.protocol", "smtp");
            prop.put("mail.smtp.auth", "true");
            //如果不加下面的这行代码 windows下正常,linux环境下发送失败,解决:http://www.cnblogs.com/Harold-Hua/p/7029117.html
            prop.setProperty("mail.smtp.ssl.enable", "true");
            //使用java发送邮件5步骤
            //1.创建sesssion
            Session session = Session.getInstance(prop);
            //开启session的调试模式,可以查看当前邮件发送状态
            //session.setDebug(true);
    
            //2.通过session获取Transport对象(发送邮件的核心API)
            Transport ts = session.getTransport();
            //3.通过邮件用户名密码链接,阿里云默认是开启个人邮箱pop3、smtp协议的,所以无需在阿里云邮箱里设置
            ts.connect(EMAIL_OWNER_ADDR, EMAIL_OWNER_ADDR_PASS);
    
            //4.创建邮件
            //创建邮件对象
            MimeMessage mm = new MimeMessage(session);
            //设置发件人
            mm.setFrom(new InternetAddress(EMAIL_OWNER_ADDR));
            //设置收件人
            mm.setRecipient(Message.RecipientType.TO, new InternetAddress(email));
            //设置抄送人
            //mm.setRecipient(Message.RecipientType.CC, new InternetAddress("XXXX@qq.com"));
    
            //mm.setSubject("吸引力注册邮件");
            mm.setSubject(title);
    
            //mm.setContent("您的注册验证码为:<b style="color:blue;">0123</b>", "text/html;charset=utf-8");
            mm.setContent(content, "text/html;charset=utf-8");
    
            // true表示开始附件模式 -----------------------------------------------------------------------
            /*MimeMessageHelper messageHelper = new MimeMessageHelper(mm, true, "utf-8");
            // 设置收件人,寄件人
            messageHelper.setTo(email);
            messageHelper.setFrom(EMAIL_OWNER_ADDR);
            messageHelper.setSubject(title);
            // true 表示启动HTML格式的邮件
            messageHelper.setText(content, true);
    
            FileSystemResource file1 = new FileSystemResource(new File("d:/rongke.log"));
            FileSystemResource file2 = new FileSystemResource(new File("d:/新建文本文档.txt"));
            // 添加2个附件
            messageHelper.addAttachment("rongke.log", file1);
            try {
                //附件名有中文可能出现乱码
                messageHelper.addAttachment(MimeUtility.encodeWord("新建文本文档.txt"), file2);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
                throw new MessagingException();
            }*/
            //-------------------------------------------------------------------------------------------
            //5.发送电子邮件
    
            ts.sendMessage(mm, mm.getAllRecipients());
        }
    
        public static void main(String[] args) throws MessagingException {
            //sendMail("吸引力注册邮件", "xxx@qq.com", "您的注册验证码为:<b style="color:blue;">651899</b>");
            sendMail("吸引力", "xxx@qq.com", "spring boot 邮件测试");
        }
    }
  • 相关阅读:
    poj 2584 T-Shirt Gumbo (二分匹配)
    hdu 1757 A Simple Math Problem (乘法矩阵)
    矩阵之矩阵乘法(转载)
    poj 2239 Selecting Courses (二分匹配)
    hdu 3661 Assignments (贪心)
    hdu 1348 Wall (凸包)
    poj 2060 Taxi Cab Scheme (二分匹配)
    hdu 2202 最大三角形 (凸包)
    hdu 1577 WisKey的眼神 (数学几何)
    poj 1719 Shooting Contest (二分匹配)
  • 原文地址:https://www.cnblogs.com/007sx/p/7610709.html
Copyright © 2011-2022 走看看