Java教程

Java发送腾讯企业邮箱

本文主要是介绍Java发送腾讯企业邮箱,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java发送腾讯企业邮箱

  • 一、java发送腾讯企业邮箱

一、java发送腾讯企业邮箱

package com.cndatacom.cloud1.cdchr.modules.hireinfo.common.emailutil;

import com.sun.mail.util.MailSSLSocketFactory;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.Date;
import java.util.Properties;

/**
 * @ProductName: IntelliJ IDEA
 * @ProjectName: hr-homa-service
 * @Description:
 * @Witticism: Your ability to learn and experience in solving problems will always be the only thing holding you back
 * @User: Tangerine
 * @Email: yj_tangerine@163.com | yj_tangerine@sina.com
 * @Date: 2021/9/30 17:58 星期四
 * @version: V1.0.0
 */
public class EmailUtil {

    private static String account = "邮箱登录名";// 登录账户
    private static String password = "邮箱登录密码";// 登录密码
    private static String host = "smtp.exmail.qq.com";// 服务器地址
    private static String port = "465";// 端口
    private static String protocol = "smtp";// 协议

    //初始化参数
    public static Session initProperties() {
        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");
        // 使用SSL,企业邮箱必需 start
        // 开启安全协议
        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);
            }
        });
        // 使用SSL,企业邮箱必需 end
        // TODO 显示debug信息 正式环境注释掉
        session.setDebug(true);
        return session;
    }

    //@param sender 发件人别名
    //@param subject 邮件主题
    //@param content 邮件内容
    //@param receiverList 接收者列表,多个接收者之间用","隔开
    //@param fileSrc 附件地址
    public void send(String sender, String subject, String content, String receiverList, String fileSrc) throws IOException, MessagingException {

        Session session = initProperties();
        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);
        // 添加图片&附件
        bodyPart = new MimeBodyPart();
        bodyPart.attachFile(fileSrc);
        mimeMultipart.addBodyPart(bodyPart);
        mimeMessage.setContent(mimeMultipart);
        mimeMessage.saveChanges();
        Transport.send(mimeMessage);

    }
}

这篇关于Java发送腾讯企业邮箱的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!