邮件发送测试案例

1. 这里以网易邮箱做案例;注册网易邮箱并开通smtp服务

  • 开启smtp服务并保存授权码(很重要)

2. 在 maven 项目的 pom.xml中引入依赖

<!--  邮件发送依赖    --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-email</artifactId><version>1.2</version></dependency><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.5.0-b01</version></dependency>

3. Java代码示例

package com.test;import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;//发送邮件带附件测试
public class EmailUtils {public static final String SenderEmail = "xxxxxx@163.com";//发送人邮箱public static final String senderCode = "xxxxxxx";//发送人邮箱授权码(开通smtp时得到的授权码)public static final String emailSMTPHost = "smtp.163.com";//服务器地址public static final String receiveMailAccount = "xxxx@163.com";//收件人邮箱public static final String ccMailAccount = "xxxxx@163.com";//抄送人邮箱public static final String bccmailAccount = "xxxxx@163.com";//密送人邮箱public static void main(String[] args) {sendMail();}/*发送邮件*/public static void sendMail() {try {//1. 创建属性对象Properties props = new Properties();props.setProperty("mail.transport.protocol", "smtp");// 使用的协议props.setProperty("mail.smtp.host", emailSMTPHost);// 发件人的邮箱的SMTP服务器地址props.setProperty("mail.smtp.auth", "true");// 需要请求认证//2. 得到会话对象实例Session session = Session.getInstance(props);//3. 是否打印详细日志session.setDebug(false);//4. 获取邮件对象(封装了一个方法)MimeMessage message = createMimeMessage(session);Transport transport = session.getTransport();//5. 连接发送人的邮箱账户transport.connect(SenderEmail, senderCode);// 6. 发送邮件, 发到所有的收件地址; message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人transport.sendMessage(message, message.getAllRecipients());// 7. 关闭连接transport.close();System.out.println("邮件发送成功");} catch (Exception e) {e.printStackTrace();System.out.println("发送邮件失败");}}public static MimeMessage createMimeMessage(Session session) throws Exception {// 1. 创建一封邮件MimeMessage message = new MimeMessage(session);// 2. From: 发件人message.setFrom(new InternetAddress(SenderEmail, "发件人", "UTF-8"));//收件人列表List<String> receiveMailList = new ArrayList<String>();receiveMailList.add("xxxx@163.com");receiveMailList.add("xxxxxx@qq.com");//MimeMessage.RecipientType.TO:收件类型;MimeMessage.RecipientType.CC:抄送类型;MimeMessage.RecipientType.BCC:密送类型
//        message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMailAccount, "收件人", "UTF-8")); // 发送单个人员// 3. 设置收件人、抄送人、密送人message.setRecipients(MimeMessage.RecipientType.TO, getInternetAddress(receiveMailList));message.setRecipient(MimeMessage.RecipientType.CC, new InternetAddress(ccMailAccount, "抄送人", "UTF-8"));message.setRecipient(MimeMessage.RecipientType.BCC, new InternetAddress(bccmailAccount, "密送人", "UTF-8"));// 4. Subject: 邮件主题message.setSubject("邮件带附件标题", "UTF-8");// 5. Content: 邮件正文(可以使用html标签)message.setContent("这是邮件正文,Hello.", "text/html;charset=UTF-8");//以下部分为携带附件代码,不需要携带附件的可删除星号圈起的部分***************************************MimeMultipart multipart = new MimeMultipart();MimeBodyPart mimeBodyPart = new MimeBodyPart();mimeBodyPart.setContent("这是邮件正文,Hello.", "text/html;charset=UTF-8");multipart.addBodyPart(mimeBodyPart);MimeBodyPart file1 = new MimeBodyPart();DataHandler handler = new DataHandler(new FileDataSource("D:\\桌面壁纸\\xue1.jpg"));file1.setDataHandler(handler);//对文件名进行编码,防止出现乱码String fileName = MimeUtility.encodeWord("雪.jpg", "utf-8", "B");file1.setFileName(fileName);multipart.addBodyPart(file1);message.setContent(multipart);//***********************************************************************************// 6. 设置发件时间message.setSentDate(new Date());// 7. 保存设置message.saveChanges();return message;}//设置收件人public static InternetAddress[] getInternetAddress(List<String> mailList) throws AddressException {int length=mailList.size();if (length == 0) {return null;}InternetAddress[] internetAddresses = new InternetAddress[length];for (int i = 0; i < length; i++) {internetAddresses[i]=new InternetAddress(mailList.get(i));}return internetAddresses;}
}

java 实现邮件带附件发送相关推荐

  1. Java Mail---SMTP协议-Java发邮件(带附件)演示过程

    转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] JavaMail-API简介: 邮件客户端的主要任务是向邮件服务器发送邮件,以及接 ...

  2. springboot:java实现邮件及附件发送、HTML正文的三种方式(一)【附带源码】

    0. 引言 邮件发送是我们日常开发中比较常见的功能,常用于预警信息提醒.统计数据定期发送等需求.一般该方法会由前人封装好,实际开发时只需要调用即可,但具体怎么实现的,如何从零实现邮件发送,这是我们要掌 ...

  3. Java 发邮件-带附件且正文html格式

    入职新公司不久,接到一个给用户发邮件的需求,有两点需要说明的:1)正文需要格式化:2)需要带附件. 大概了解了一下需求,我马上开始思考,现有项目中是否有类似的接口可以支持,如果可以支持,那我就不用再开 ...

  4. python发邮件给女朋友代码_python实现邮件发送完整代码(带附件发送方式)

    实例一:利用SMTP与EMAIL实现邮件发送,带附件(完整代码) __author__ = 'Administrator' #coding=gb2312 from email.Header impor ...

  5. Scala发邮件(带附件,无论是本地文件和hdfs文件或df或rdd)

    @羲凡--只为了更好的活着 Scala发邮件(带附件,无论是本地文件和hdfs文件或df或rdd) 在有些spark任务执行完后需要通知我们该任务已经执行结束,发邮件到某个邮箱是最直接的方式.那如何用 ...

  6. python自动化发邮件(带附件及正文显示图片)

    一.python自动发送邮件-(附件及正文图片) 带附件邮件(1) 前言:一般我们发送邮件,整体的逻辑是这样的,先登录邮箱,发件人,收件人,主题,附件,内容 尝试自动发邮件,并且携带附件,代码如下 f ...

  7. 1.3windows命令行下使用blat发邮件带附件

    windows命令行bat批处理脚本的应用之blat程序自动发邮件  1.3windows命令行下使用blat发邮件带附件  __游旗丶引莫(孙忠)  发邮件脚本模板  rem  ----邮件内容-- ...

  8. python中带附件发送电子邮件_python发送带附件邮件

    Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. py ...

  9. python 发邮件 timeout_Python邮件发送/带附件发送

    #coding:utf-8 #强制使用utf-8编码格式 import smtplib #加载smtplib模块 from email.mime.text importMIMETextfrom ema ...

最新文章

  1. 2019年人工智能硬件与应用大趋势
  2. Facebook大牛、HipHop作者赵海平加入阿里巴巴
  3. 为什么linux中c语言不一样,不懂linux为什么要死守c语言。
  4. python出现的次数最多的元素_Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算...
  5. PageRank算法简介及Map-Reduce实现
  6. 面试题:1 到 1000 之间有多少个 7?
  7. [jQuery] 你有写过jQuery的扩展吗?都有哪些写法?
  8. informatica数据脱敏_助您首个大数据项目破茧成蝶的实践指南
  9. “strcpy” 模拟的实现
  10. koa mysql 按钮级权限_Vue 指令实现按钮级别权限管理功能
  11. 安卓开发之如何利用Intent对象,实现Activity和另一个Activity之间的跳转
  12. Must 和 have to的疑问句_55 1
  13. mysql主从分离一致性_数据库主从数据一致性的几种解决方案
  14. 这8款开源自动化测试框架,你还没用上?
  15. css3参考手册在线和下载
  16. 浅谈如何构建自己的技能树(知识树)
  17. 高通芯片校准中的RGI、ICQ是什么意思,校准的特征化是什么意思?(转)
  18. 笔记本电脑 编程_如何选择笔记本电脑进行编程
  19. 获取选股宝7x24小时数据
  20. 孤独的灵魂 - 复旦投毒案

热门文章

  1. UE4材质—UV和贴图坐标系
  2. c语言(cn)括号的作用,c语言小括号的用法
  3. PLC 工程师必备知识 — IO模块选型和使用(下篇)
  4. Git使用:在Git pull时遇到的Error及解决方法
  5. 【友盟+】国庆假期旅游类APP使用报告(上)
  6. 2022制冷与空调设备运行操作考题及在线模拟考试
  7. VS2008的DDK环境配置DDK下载
  8. 射频测试系统|射频信号测试软件NSAT-1000
  9. BZOJ4379: [POI2015]Modernizacja autostrady
  10. 字节跳动 校招薪资曝光,老员工被倒挂疯了~