(注: 本文是参考http://www.cnblogs.com/xdp-gacl/p/4216311.html. 感谢博主的精彩的描述)

一, 前期的准备

  1, 导入 mail.jar

二, 操作步骤:

  1, 创建Properties对象, 并设置相关属性, 其中包括: mail.host,  mail.transport.protocol,  mail.smtp.auth.

  2, 创建Session对象, 设置发送邮件的网络环境, 即导入Properties对象.

  3, 通过Session对象获取Transport对象, 用于发送邮件. transport对象实现了邮件发送协议,如SMTP

  4, 使用用户名和密码连接邮件服务器

  5, 创建邮件Message 实例(由于邮件内容比较复杂, 此处使用MimeMessage)

    5.1  创建MimeBodyPart 实例(包括: 文本, 图片, 附件), 并设置内容(setContent(), setDataHandler())和 ID或名称.

    5.2  创建关系描述实例MimeMultipart, 添加所加入的元素, 并设置关系类型(related, mixed)

    5.3   将关系描述实例设置为message的内容.

    5.4  保存修改, saveChanges();

  6, 发送邮件: transport.sendMessage();

 package jason.mail;

 import java.util.Properties;

 import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart; public class SimpleSendMail {
public static void main(String[] args) throws Exception{
Properties prop = new Properties();
prop.setProperty("mail.host", "smtp.163.com");
prop.setProperty("mail.transport.protocol", "smtp");
prop.setProperty("mail.smtp.auth", "true"); // 使用javaMail发送邮件的5个步骤
//1. 创建session, 即发送邮件的网络环境
Session session = Session.getInstance(prop); //开启session的debug模式,这样就可以查看发送Email的运行状态
session.setDebug(true); //2. 得到transport对象: 通过session获得
Transport ts = session.getTransport(); //3. 使用用户名, 密码连接邮件服务器
ts.connect("smtp.163.com", "liujun4719", "jason./1234"); //4. 创建邮件
Message message = createMail(session); //5. 发送邮件
int i = 1;
while(i++ <= 6){
ts.sendMessage(message, message.getAllRecipients());
}
ts.close(); } public static MimeMessage createMail(Session session) throws Exception{ //创建邮件
MimeMessage message = new MimeMessage(session); //设置邮件的的基本信息
message.setFrom(new InternetAddress("liujun4719@163.com"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("xiangjun.Liu@travelzen.com"));
message.setSubject("带附件和图片的邮件"); //正文
MimeBodyPart text = new MimeBodyPart();
text.setContent("hello", "text/html;charset=UTF-8"); //图片
MimeBodyPart image = new MimeBodyPart();
image.setDataHandler(new DataHandler(new FileDataSource("/home/liuxiangjun/doc/mailTest/mailTestPic.png")));
image.setContentID("mailTest"); //附件
MimeBodyPart attach = new MimeBodyPart();
DataHandler dh = new DataHandler(new FileDataSource("/home/liuxiangjun/doc/mailTest/aliedit.sh"));
attach.setDataHandler(dh);
attach.setFileName(dh.getName()); //描述关系: 正文与图片
MimeMultipart mp1 = new MimeMultipart();
mp1.addBodyPart(text);
mp1.addBodyPart(image);
mp1.setSubType("related"); //描述关系: 正文与附件
MimeMultipart mp2 = new MimeMultipart();
mp2.addBodyPart(attach); //代表正文的bodypart
MimeBodyPart content = new MimeBodyPart();
content.setContent(mp1);
mp2.addBodyPart(content);
mp2.setSubType("mixed"); message.setContent(mp2);
message.saveChanges(); return message; } }

javaMail创建邮件和发送邮件总结的更多相关文章

  1. JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件

    一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮件体之间使用空行分隔. 邮件头包含的内容有: from字段 ...

  2. (转载)JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件

    博客源地址:http://www.cnblogs.com/xdp-gacl/p/4216311.html 一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封 ...

  3. 使用JavaMail创建邮件和发送邮件

    参考https://www.cnblogs.com/xdp-gacl/p/4216311.html,写的真好,知识在于分享,备份留着看 一.RFC882文档简单说明 RFC882文档规定了如何编写一封 ...

  4. 使用JavaMail创建邮件发送邮件

    一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮件体之间使用空行分隔. 邮件头包含的内容有: from字段 ...

  5. JavaMail入门第二篇 创建邮件

    JavaMail API使用javax.mail.Message类来表示一封邮件,Message类是一个抽象类,所以我们需要使用其子类javax.mail.internet.MimeMessage类来 ...

  6. (二)JavaMail创建包含内嵌图片的邮件

    链接:https://blog.csdn.net/qq_41151659/article/details/96475739 代码如下: import com.sun.mail.util.MailSSL ...

  7. 01_JavaMail_05_创建邮件工具类MailUtils等方便发送邮件

    [工程截图] [代码实现] [Mail.java] package com.Higgin.Utils; import java.util.ArrayList; import java.util.Lis ...

  8. 基于javaMail的邮件发送--excel作为附件

    基于JavaMail的Java邮件发送 Author xiuhong.chen@hand-china.com Desc 简单邮件发送 Date 2017/12/8 项目中需要根据物料资质的状况实时给用 ...

  9. javaMail发邮件,激活用户账号

    用javamail实现注册用户验证邮箱功能.用户注册后随机生成一个uuid作为用户的标识,传递给用户然后作为路径参数.发送html的内容到用户注册的邮箱里,若用户点击后去往的页面提交username和 ...

随机推荐

  1. gitHub-初识

    如何生成github所使用的ssh key https://help.github.com/articles/generating-ssh-keys/ 多个github帐号的SSH key切换 htt ...

  2. oracle的基本查询~上

    SQL> --查询一下当前登录的用户名SQL> show user;USER 为 "SCOTT"SQL> --查询当前用户下有哪些表SQL> select ...

  3. openstack 排错

    1.查看日志 grep ERROR /var/log/keystone/keystone.log 2. # nova list ERROR:n/a (http 404) 检查环境变量是否正确.

  4. [转]ubuntu环境变量配置文件

    参考网址:http://www.bkjia.com/Linuxjc/1008127.html Ubuntu通常使用的几个配置文件主要有下面这几个: /etc/environment./etc/prof ...

  5. 【转载】Spark系列之运行原理和架构

    参考 http://www.cnblogs.com/shishanyuan/p/4721326.html 1. Spark运行架构 1.1 术语定义 lApplication:Spark Applic ...

  6. PacBio全基因组测序和组装

    PacBio公司的业务范围也就5个(官网): Whole Genome Sequencing Targeted Sequencing Complex Populations RNA Sequencin ...

  7. 基于SourceTree 下的 Git Flow 模型

    基于SourceTree 下的 Git Flow 模型 1. sourceTree  是一个开源的git 图形管理工具,可下载mac版本,windows版本 2. Git Flow 是一套使用Git进 ...

  8. 【C#】获取当前系统桌面、我的照片、我的文档等路径

    获取当前系统桌面.我的照片.我的文档等路径   using System; using System.Collections.Generic; using System.ComponentModel; ...

  9. CentOS下安装setuptools、pip和virtualenv

    已经安装了Python,现在我们可以最终确定完成应用程序生产和部署的基础知识.为此,我们将设立两个最常用的工具:PIP封装经理和virtualenv中的环境管理. 一.安装setuptools set ...

  10. (01)odoo8.0_Ubuntu14.04源码安装

    作者:陈伟明联系 :  QQ 942923305 | 微信 toby942923305E-mail: toby2chen@hotmail.com============================ ...