• 通过腾讯邮件服务器发送HTML邮件


    邮件发送工具:

    private static String host = "smtp.exmail.qq.com";// 服务器地址
    private static String port = "465";// 端口
    private static String protocol = "smtp";// 协议

    public static Session initProperties(String account, String password) {
    Properties properties = new Properties();
    properties.setProperty("mail.transport.protocol", protocol);
    properties.setProperty("mail.smtp.host", host);
    properties.setProperty("mail.smtp.port", port);
    // 使用smtp身份验证
    properties.put("mail.smtp.auth", "true");
    // 开启安全协议
    MailSSLSocketFactory mailSSLSocketFactory = null;
    try {
    mailSSLSocketFactory = new MailSSLSocketFactory();
    mailSSLSocketFactory.setTrustAllHosts(true);
    } catch (GeneralSecurityException e) {
    e.printStackTrace();
    }
    properties.put("mail.smtp.enable", "true");
    properties.put("mail.smtp.ssl.socketFactory", mailSSLSocketFactory);
    properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    properties.put("mail.smtp.socketFactory.fallback", "false");
    properties.put("mail.smtp.socketFactory.port", port);
    Session session = Session.getDefaultInstance(properties, new Authenticator() {
    @Override
    protected PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication(account, password);
    }
    });
    session.setDebug(true);
    return session;
    }
    /**
    * @Description: 发送邮件
    * @Title: send
    * @date 2019-10-08 17:12
    * @param @param sender发件人别名
    * @param @param subject邮件主题
    * @param @param content接收者列表,多个接收者之间用","隔开
    * @param @param receiverList
    * @param @param fileSrc 附件地址
    * @return void 返回类型
    * @throws @return void
    * @param sender
    * @param subject
    * @param content
    * @param receiverList
    * @param fileSrc
    */
    public void send(String sender, String subject, String content, String receiverList, String fileSrc, String account,
    String password) {
    try {
    Session session = initProperties(account, password);
    MimeMessage mimeMessage = new MimeMessage(session);
    mimeMessage.setFrom(new InternetAddress(account, sender));// 发件人,可以设置发件人的别名
    // 收件人,多人接收
    InternetAddress[] internetAddressTo = new InternetAddress().parse(receiverList);
    mimeMessage.setRecipients(Message.RecipientType.TO, internetAddressTo);
    // 主题
    mimeMessage.setSubject(subject);
    // 时间
    mimeMessage.setSentDate(new Date());
    // 容器类 附件
    MimeMultipart mimeMultipart = new MimeMultipart();
    // 附件
    MimeBodyPart bodyPart = new MimeBodyPart();
    // 设置内容
    bodyPart.setContent(content, "text/html; charset=UTF-8");
    mimeMultipart.addBodyPart(bodyPart);
    // 添加图片&附件
    if(fileSrc!=null){

    bodyPart = new MimeBodyPart();
    bodyPart.attachFile(fileSrc);

    }
    mimeMultipart.addBodyPart(bodyPart);
    mimeMessage.setContent(mimeMultipart);
    mimeMessage.saveChanges();
    Transport.send(mimeMessage);
    } catch (MessagingException e) {
    e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }

    测试类:

    public static void main(String[] args) throws Exception {
    String account = "xxxxxxxx@xxxxxx.cn";// 登录账户
    String password = "xxxxxxxxxxxxxxx";// 登录密码

    SendEmailUtil tenMailUtil = new SendEmailUtil();
    tenMailUtil.send("发件人别名", "邮件主题", "<h1 style='color:red'>HhhhHHHHHHH</h1>",
    "xxxxxx@foxmail.com,xxxxx@xxxxx.cn", "C:/Users/Administrator/Desktop/index.html   as  附件", account,
    password);
    }

    学着把生活的苦酒当成饮料一样慢慢品尝, 不论生命经过多少委屈和艰辛, 我们总是以一个朝气蓬勃的面孔, 醒来在每一个早上。
  • 相关阅读:
    ssh
    ssh免密码登陆
    滑雪[dp]
    Help Jimmy[dp]
    动态规划 [子序列问题]
    最佳加法表达式 [dp]
    求排列的逆序数[归并排序]
    输出前m大个数,时间复杂度O(n+mlog(m)) [快排]
    不会递归?五道例题教你如何递归
    函数模板的琐碎笔记
  • 原文地址:https://www.cnblogs.com/yhm9/p/11642775.html
Copyright © 2020-2023  润新知