java项目对接邮箱

java项目对接邮箱

1.首先开启邮箱SMTP服务

参考https://blog.csdn.net/m0_46987952/article/details/128129332 博主。

2.java代码

2.1 maven配置

		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.4.4</version>
		</dependency>

		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.6</version>
		</dependency>

2.2 示例

package com.sxing.testapi;


import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;


public class MailHelper {
    public MailHelper() {
    }

    public static void main(String[] args) {
        sendMail("smtp.163.com", 465, (Boolean)null, "XXXXXXXXXXX@163.com", "XXXXXXXX(开通的授权码,不是登录的密码)", "2904849189@qq.com", (String)null, (String)null, "测试邮件", "测试邮件");
    }

    /**
     *
     * @param smtp_server smtp 服务器
     * @param smtp_post SSL端口号
     * @param isAuth 是否鉴权
     * @param sendMail 发送者的邮箱
     * @param sendPwd  此处填写开通的授权码 不是登录邮箱的密码
     * @param addressee 接收者的邮箱
     * @param ccmail
     * @param bccmail
     * @param mailTitle 邮件标题
     * @param mailContent 邮件内容
     */
    public static void sendMail(String smtp_server, Integer smtp_post, Boolean isAuth, String sendMail, String sendPwd, String addressee, String ccmail, String bccmail, String mailTitle, String mailContent) {
        if (StringUtils.isBlank(smtp_server)) {
            //throw new ServiceException("参数错误:SMTP服务器地址不能为空");
        } else if (StringUtils.isBlank(sendMail)) {
            //throw new ServiceException("参数错误:发件人不能为空");
            System.out.println("参数错误:发件人不能为空");
        } else if (StringUtils.isBlank(addressee)) {
            //throw new ServiceException("参数错误:收件人不能为空");
            System.out.println("参数错误:收件人不能为空");
        } else if (StringUtils.isBlank(mailTitle)) {
            //throw new ServiceException("参数错误:邮件名称不能为空");
            System.out.println("参数错误:邮件名称不能为空");
        } else if (StringUtils.isBlank(mailContent)) {
            //throw new ServiceException("参数错误:邮件内容不能为空");
            System.out.println("参数错误:邮件内容不能为空");
        } else {
            final Properties props = new Properties();
            props.put("mail.smtp.host", smtp_server);
            if (isAuth == null) {
                isAuth = true;
            }

            if (isAuth) {
                System.out.println("启用身份验证");
                props.put("mail.smtp.auth", isAuth);
                props.put("mail.user", sendMail);
                props.put("mail.password", sendPwd);
            }

            if (smtp_post != null) {
                System.out.println("启用SSL验证");
                props.put("mail.smtp.starttls.enable", true);
                props.put("mail.smtp.socketFactory.port", smtp_post);
                props.put("mail.smtp.protocol", "smtps");
                props.put("mail.smtp.ssl.trust", smtp_server);
            }

            Authenticator authenticator = new Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    String userName = props.getProperty("mail.user");
                    String password = props.getProperty("mail.password");
                    return new PasswordAuthentication(userName, password);
                }
            };
            Session mailSession = Session.getInstance(props, authenticator);
            MimeMessage message = new MimeMessage(mailSession);

            try {
                InternetAddress form = new InternetAddress(props.getProperty("mail.user"));
                message.setFrom(form);
                InternetAddress to = new InternetAddress(addressee);
                message.setRecipient(RecipientType.TO, to);
                String[] strbcc;
                ArrayList bccList;
                String[] var18;
                int var19;
                int var20;
                String str;
                if (StringUtils.isNotBlank(addressee)) {
                    strbcc = addressee.split(";");
                    if (strbcc != null && strbcc.length > 0) {
                        bccList = new ArrayList();
                        var18 = strbcc;
                        var19 = strbcc.length;

                        for(var20 = 0; var20 < var19; ++var20) {
                            str = var18[var20];
                            bccList.add(new InternetAddress(str));
                        }

                        message.setRecipients(javax.mail.internet.MimeMessage.RecipientType.TO, (Address[])bccList.toArray(new InternetAddress[bccList.size()]));
                    }
                }

                if (StringUtils.isNotBlank(ccmail)) {
                    strbcc = ccmail.split(";");
                    if (strbcc != null && strbcc.length > 0) {
                        bccList = new ArrayList();
                        var18 = strbcc;
                        var19 = strbcc.length;

                        for(var20 = 0; var20 < var19; ++var20) {
                            str = var18[var20];
                            bccList.add(new InternetAddress(str));
                        }

                        message.setRecipients(javax.mail.internet.MimeMessage.RecipientType.CC, (Address[])bccList.toArray(new InternetAddress[bccList.size()]));
                    }
                }

                if (StringUtils.isNotBlank(bccmail)) {
                    strbcc = bccmail.split(";");
                    if (strbcc != null && strbcc.length > 0) {
                        bccList = new ArrayList();
                        var18 = strbcc;
                        var19 = strbcc.length;

                        for(var20 = 0; var20 < var19; ++var20) {
                            str = var18[var20];
                            bccList.add(new InternetAddress(str));
                        }

                        message.setRecipients(javax.mail.internet.MimeMessage.RecipientType.BCC, (Address[])bccList.toArray(new InternetAddress[bccList.size()]));
                    }
                }

                message.setSubject(mailTitle);
                message.setContent(mailContent, "text/html;charset=UTF-8");
                Transport.send(message);
            } catch (AddressException var22) {
                //throw new ServiceException("系统错误:" + var22.getMessage(), var22);
                System.out.println("系统错误1:" + var22.getMessage());
            } catch (MessagingException var23) {
               // throw new ServiceException("系统错误:" + var23.getMessage(), var23);
                System.out.println("系统错误2:" + var23.getMessage());
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值