Java Email 发送Html邮件

Java Email

maven 依赖引入

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>javax.mail-api</artifactId>
    <version>1.6.1</version>
</dependency>
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.6.1</version>
</dependency>

发邮件工具类

//Spring boot 读配置文件的相应内容
@Value("${email.name}") 
package com.hzfh.common.utils.helper;

import com.hzfh.fmp.core.log.LogUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import java.util.HashMap;
import java.util.Properties;

/**
 * com.hzfh.common.utils
 * 发送邮件工具类
 * @Project: hrm
 * @Author: rencc
 * @Description:
 * @Date: 2018/7/13 9:05
 * @Source: Created with IntelliJ IDEA.
 */
@Component
public class EmailHelper {
    /*发件人名称*/
    @Value("${email.name}")
    private String name;
    /*发件人电子邮箱*/
    @Value("${email.account}")
    private String fromAccount;
    /*发件人电子邮箱密码*/
    @Value("${email.password}")
    private String fromPassword;
    /*邮件服务器主机*/
    @Value("${email.host}")
    private String host;
    //日志打印,根据自己实际情况调用
    private static Logger logger = LogUtils.getExceptionLogger();


    /**
     * 发送Html格式邮件
     * @param map account,title,content
     * @throws Exception
     */
    public void sendEmail(HashMap<String,Object> map) throws Exception {
        // 收件人电子邮箱
        String to = String.valueOf(map.get("account"));
        //邮件标题
        String title = String.valueOf(map.get("title"));
        //邮件内容
        Object content = map.get("content");
        // 获取系统属性
        Properties properties = System.getProperties();

        // 设置邮件服务器
        properties.setProperty("mail.smtp.host", host);
        properties.setProperty("mail.transport.protocol", "smtp");
        properties.setProperty("mail.smtp.port", "25");
        properties.setProperty("mail.smtp.auth", "true");

        // 获取默认session对象
        Session session = Session.getDefaultInstance(properties,new Authenticator(){
            @Override
            public PasswordAuthentication getPasswordAuthentication()
            {
                return new PasswordAuthentication(fromAccount, fromPassword); //发件人邮件用户名、密码
            }
        });

        // 创建默认的 MimeMessage 对象。
        MimeMessage message = new MimeMessage(session);

        // Set From: 头部头字段
        message.setFrom(new InternetAddress(fromAccount,name));

        // Set To: 头部头字段
        message.addRecipient(Message.RecipientType.TO,
                new InternetAddress(to));

        // Set Subject: 头字段,采用gb2312防止中文乱码
        message.setSubject(MimeUtility.encodeText(title,MimeUtility.mimeCharset("gb2312"), null));
        // 发送 HTML 消息, 可以插入html标签,采用gb2312防止中文乱码
        message.setContent(content,"text/html;charset=gb2312" );

        // 发送消息
        Transport.send(message);
        logger.info("【邮件日志】:Account =>"+ to +"   Result => Sent message successfully....");
    }

}

调用参数

参数名必选类型说明
accountstring收件人电子邮箱
titlestring邮件标题
contentObject邮件内容

注:163等邮箱有防垃圾邮件拦截,在Html尽量不要使用图片进行base64传输,容易被拦截。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值