Java mail邮箱发送

  • 1. 邮箱信息实体类
  • 2. jar包依赖
  • 3. 发送邮箱实现

绑定阿里云域名,创建域名账户,并配置解析域名账户,获得发送邮箱的权限,上限两百封,超出要¥…

  • 阿里云邮件推送控制台
  • https://www.aliyun.com/product/directmail
  • 申请邮箱并解析域名
  • https://yq.aliyun.com/articles/707997

1. 邮箱信息实体类

package cn.bitqian.mail.test;/*** 邮件内容实体类* @author echo lovely* @date 2020/9/18 15:47*/
public class MailInfo {// 发件人账户private String sendEmailAccount;// 发件人密码private String sendEmailPassword;// 收件人账户private String receiveMailAccount;// 发送人姓名private String sendPersonName;// 收件人姓名private String receivePersonName;// 邮件标题private String mailTitle;// 邮件正文private String mailContent;public MailInfo(String sendEmailAccount, String sendEmailPassword, String receiveMailAccount,String sendPersonName, String receivePersonName,String mailTitle, String mailContent) {this.sendEmailAccount = sendEmailAccount;this.sendEmailPassword = sendEmailPassword;this.receiveMailAccount = receiveMailAccount;this.sendPersonName = sendPersonName;this.receivePersonName = receivePersonName;this.mailTitle = mailTitle;this.mailContent = mailContent;}public String getSendEmailAccount() {return sendEmailAccount;}public void setSendEmailAccount(String sendEmailAccount) {this.sendEmailAccount = sendEmailAccount;}public String getSendEmailPassword() {return sendEmailPassword;}public void setSendEmailPassword(String sendEmailPassword) {this.sendEmailPassword = sendEmailPassword;}public String getReceiveMailAccount() {return receiveMailAccount;}public void setReceiveMailAccount(String receiveMailAccount) {this.receiveMailAccount = receiveMailAccount;}public String getMailTitle() {return mailTitle;}public void setMailTitle(String mailTitle) {this.mailTitle = mailTitle;}public String getMailContent() {return mailContent;}public void setMailContent(String mailContent) {this.mailContent = mailContent;}public String getSendPersonName() {return sendPersonName;}public void setSendPersonName(String sendPersonName) {this.sendPersonName = sendPersonName;}public String getReceivePersonName() {return receivePersonName;}public void setReceivePersonName(String receivePersonName) {this.receivePersonName = receivePersonName;}
}

2. jar包依赖

 <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!-- mail dependency --><dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version></dependency>

3. 发送邮箱实现

注意:1. 更改下面的属性,与实体类对应


代码实现

package cn.bitqian.mail.test;import org.junit.Test;import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;/*** 邮件发送工具类* @author echo lovely* @date 2020/9/18 15:54*/
public class MailSendUtils {// 邮箱smtp协议 这里是使用阿里云的public static final String myEmailSMTPHost = "smtpdm.aliyun.com";@Testpublic void test() {MailInfo mailInfo = new MailInfo("控制台所绑定的邮箱账户名","绑定账户邮箱密码","收件人邮箱名", "发件人姓名","收件人姓名", "邮箱标题", "邮箱内容");try {sendEmail(mailInfo);} catch (Exception e) {e.printStackTrace();}}public void sendEmail(MailInfo mailInfo) throws Exception {// 1. 创建参数配置, 用于连接邮件服务器的参数配置Properties props = new Properties();                    // 参数配置props.setProperty("mail.transport.protocol", "smtp");   // 使用的协议(JavaMail规范要求)props.setProperty("mail.smtp.host", myEmailSMTPHost);   // 发件人的邮箱的 SMTP 服务器地址props.setProperty("mail.smtp.auth", "true");            // 需要请求认证// 2. 根据配置创建会话对象, 用于和邮件服务器交互Session session = Session.getInstance(props);session.setDebug(true);                                 // 设置为debug模式, 可以查看详细的发送 log// 3. 创建一封邮件MimeMessage message = new MailSendUtils().createMimeMessage(session, mailInfo);// 4. 根据 Session 获取邮件传输对象Transport transport = session.getTransport();// 5. 使用 邮箱账号 和 密码 连接邮件服务器, 这里认证的邮箱必须与 message 中的发件人邮箱一致, 否则报错transport.connect(mailInfo.getSendEmailAccount(), mailInfo.getSendEmailPassword());// 6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人transport.sendMessage(message, message.getAllRecipients());// 7. 关闭连接transport.close();}public MimeMessage createMimeMessage(Session session, MailInfo mailInfo) throws Exception {// 1. 创建一封邮件MimeMessage message = new MimeMessage(session);// 2. From: 发件人(昵称有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改昵称)message.setFrom(new InternetAddress(mailInfo.getSendEmailAccount(), mailInfo.getSendPersonName(), "UTF-8"));// 3. To: 收件人(可以增加多个收件人、抄送、密送)message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(mailInfo.getReceiveMailAccount(), mailInfo.getReceivePersonName(), "UTF-8"));// 4. Subject: 邮件主题(标题有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改标题)message.setSubject(mailInfo.getMailTitle(), "UTF-8");// 5. Content: 邮件正文(可以使用html标签)(内容有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改发送内容)message.setContent(mailInfo.getMailContent(), "text/html;charset=UTF-8");// 6. 设置发件时间message.setSentDate(new Date());// 7. 保存设置message.saveChanges();return message;}}

Java实现邮箱发送(阿里云邮箱推送)相关推荐

  1. 阿里云-邮件推送 java 代码 ,测试邮件推送服务,阿里云邮件推送,java

    阿里云-邮件推送Java 测试代码 1.阿里云-邮件推送 配置 购买域名 配置域名 2.创建 Access Key 2.1登录 Access Key 管理控制台. 2.2单击页面右上角按钮 创建 Ac ...

  2. SpringBoot发送邮件(QQ邮箱、腾讯企业邮箱、网易邮箱、阿里云邮箱...)

    目录 一.获取邮箱授权码 二.引入依赖 三.配置文件(请注意yml格式,或者使用.properties) 四.不带附件发邮箱 五.带附件发邮箱 六.邮箱类型拓展 本篇文章以QQ邮箱作为发件人写案例演示 ...

  3. YII2.0使用阿里云邮件推送实现邮件发送

    从YII中文网小马哥发布的教程http://www.yiichina.com/tutorial/320获取到163邮箱的配置方法 1.在配置文件main-local.php components=&g ...

  4. Prometheus 使用阿里云邮件推送发送告警邮件

    我们在文章 <使用 docker-compose 搭建 prometheus 监控系统> 的基础上,增加 prometheus 的告警功能. Prometheus 指标的收集存储与告警是分 ...

  5. PHPCMS 邮件发送 - 使用阿里云邮件推送服务的详细设置

    自从阿里云和腾讯云相继默认封闭了云主机的25端口(可申请解封) 我就使用了阿里云的邮件推送服务,感觉很是好用.把我使用PHPCMS做的网站的邮件发送也设置成了使用了阿里云的邮件推送. 我使用的邮箱是阿 ...

  6. java阿里云邮件推送接口API使用

    最近公司在使用阿里云的邮箱验证功能,网上信息乱七八糟,弄了一下午才试验成功,记录一下 你需要有的: [发信地址,域名,AccessKey ID,AccessKey Secret] 1.阿里云-邮件推送 ...

  7. 阿里云移动推送服务java调用

    阿里云移动推送服务java调用 首先登录阿里云官网,开通移动推送服务 创建app和平台 配置应用 测试推送 根据文档编写自己的调用方法 测试推送 ##具体步骤如下: 登录阿里云官网 https://w ...

  8. 万网企业邮箱与阿里云邮箱的SMTP、POP设置

    [转载]万网企业邮箱与阿里云邮箱的SMTP.POP设置 1.万网企业邮箱SMTP.POP设置 邮箱管理网址:http://qiye.aliyun.com,其中万网的邮箱也可以配置成自己的域名邮箱,比方 ...

  9. 使用阿里云邮件推送服务架设自己邮件验证与推送体系

    提示:阅读本文需提前了解的相关知识 1.电子邮件协议(http://baike.baidu.com/view/2367542.htm) 2.阿里云邮件推送(https://www.aliyun.com ...

  10. 阿里云邮件推送,邮件模板加EmailCamel退订链接,加速模板通过审核!

    1. 什么是邮件退订链接? 在给客户发邮件或者群发邮件的时候,在邮件内容的底部加退订链接.客户如果以后不想接收您的邮件,可以退订.退订后,您就不要再给客户发邮件了.使用EmailCamel退订链接,可 ...

最新文章

  1. python打印列表元素_python打印列表中指定元素的所有下标
  2. java如何画周期sanjiao信号_如何声明一个可变长度的std_logic_vector信号
  3. JS服务器端开发基础篇(Array.slice方法和splice方法)
  4. Oracle启动和停止的方式详解
  5. 【Python基础】加密你的Python源码顺便再打个包如何?
  6. 求教PHP+oracle的开发
  7. selenium webdriver 如何添加cookie
  8. 什么原因导致芯片短路_华为为什么突然大量用起了联发科芯片,或是这三个产品策略原因...
  9. mysql连接参数配置
  10. Linux进程间通信——使用消息队列
  11. 深入解剖 linux内存管理之mmap
  12. 雅黑科技php探针,雅黑PHP探针参数详解
  13. 蓝宝石rx470d原版bios_小白福利教程:关于显卡BIOS的一些信息的讲解
  14. 端口映射器与端口映射软件的区别及内网发布网站到外网的使用
  15. 关于PCB与设备外壳接地问题
  16. Mac 开机慢、反应慢,可清理缓存
  17. AUTOSAR BSW介绍
  18. 测试自己移动速度的软件,Superspeed一键测速脚本 测试服务器到国内电信/联通/移动速度...
  19. 【Java开发】 Spring 09 :Spring Data REST 实现并访问简单的超媒体服务
  20. 《计算机网络》学习笔记----第七版课后习题参考答案 第四章

热门文章

  1. clickhouse建表异常 DB::Exception: No macro ‘shard‘ in config
  2. 计算机绘图图框实验报告,CAD实验报告DOC
  3. 读NP-C及哥德尔不完备定理感想
  4. android 自定义按钮边角有阴影,Android CardView使用elevation设置阴影去掉边角背景解决办法 | 夕辞...
  5. 【JVM系列3】方法重载和方法重写原理分析,看完这篇终于彻底搞懂了
  6. PHP获取客户端真实IP的方法
  7. java无法重命名文件_巧妙地解决Java文件重命名失败的问题
  8. 【生产力工具】Surfingkeys——网页版Vim
  9. 金九银十,一个新的王者在8月即将加冕——Treasure project(TPC)重磅来袭,你参与了吗?
  10. 五年后的深圳是天堂还是地狱?