[Java] JavaMail 发送 html 格式、带附件的邮件
本案例演示发送 html 格式,可带附件的邮件发送。发送纯文本邮件的例子可参照上一篇博文JavaMail 简单案例。
EmailHelper, Email 的帮助类,向帮助类提供 SMTP 服务器域名、用户名、密码、发送人邮箱、收件人邮箱、邮件主题、html 格式的内容(可选)、附件(可选),便可发送一份邮件。
SendEmailDemo, 演示发送邮件。
- import java.util.Properties;
- import javax.activation.DataHandler;
- import javax.activation.DataSource;
- import javax.activation.FileDataSource;
- import javax.mail.BodyPart;
- import javax.mail.Message;
- import javax.mail.MessagingException;
- import javax.mail.Multipart;
- import javax.mail.PasswordAuthentication;
- import javax.mail.Session;
- import javax.mail.Transport;
- import javax.mail.internet.AddressException;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeBodyPart;
- import javax.mail.internet.MimeMessage;
- import javax.mail.internet.MimeMultipart;
- public class EmailHelper {
- private String host;
- private String username;
- private String password;
- private String from;
- private String to;
- private String subject;
- private String htmlContent;
- private String attachedFileName;
- public EmailHelper(String host, String username, String password, String from) throws AddressException, MessagingException{
- this.host = host;
- this.username = username;
- this.password = password;
- this.from = from;
- }
- public void send() throws Exception{
- Properties props = new Properties();
- props.put("mail.smtp.auth", "true");
- props.put("mail.smtp.host", host);
- final String username1 = username;
- final String password1 = password;
- Session session = Session.getInstance(props,
- new javax.mail.Authenticator(){
- protected PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication(username1, password1);
- }
- });
- Message message = new MimeMessage(session);
- message.setFrom(new InternetAddress(from));
- message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
- message.setSubject(subject);
- Multipart multipart = new MimeMultipart();
- if (htmlContent != null){
- System.out.println(" has html ");
- BodyPart htmlPart = new MimeBodyPart();
- htmlPart.setContent(htmlContent, "text/html");
- multipart.addBodyPart(htmlPart);
- }
- if (attachedFileName != null){
- System.out.println(" has attached file ");
- BodyPart attchmentPart = new MimeBodyPart();
- DataSource source = new FileDataSource(attachedFileName);
- attchmentPart.setDataHandler(new DataHandler(source));
- attchmentPart.setFileName(attachedFileName);
- multipart.addBodyPart(attchmentPart);
- }
- message.setContent(multipart);
- Transport.send(message);
- System.out.println(" Sent ");
- }
- public void setTo(String to) {
- this.to = to;
- }
- public void setSubject(String subject) {
- this.subject = subject;
- }
- public void setHtmlContent(String htmlContent) {
- this.htmlContent = htmlContent;
- }
- public void setAttachedFileName(String attachedFileName) {
- this.attachedFileName = attachedFileName;
- }
- }
演示代码,
- public class SendEmailDemo {
- public static void main(){
- String host = "smtp.163.com"; // use your smtp server host
- final String username = "sender@163.com"; // use your username
- final String password = "password"; // use your password
- String from = "sender@163.com"; // use your sender email address
- String to = "reciever@foxmail.com"; // use your reciever email address
- try {
- EmailHelper emailHelper = new EmailHelper(host, username, password, from);
- emailHelper.setTo(to);
- emailHelper.setSubject("subject ttt test");
- emailHelper.setHtmlContent("<h1> This is html </h1>");
- emailHelper.setAttachedFileName("/Users/grs/Documents/Java/mavenEmail/test/src/main/resource/attachment3.txt");
- emailHelper.send();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
需要读取邮箱邮件,可参考另一篇博文 JavaMail 查询邮件。
参考资料
[Java] JavaMail 发送 html 格式、带附件的邮件的更多相关文章
- python+selenium实现发送一封带附件的邮件
163邮件登录首页 登录成功断言是否有退出按钮 点击退出退出登录 from selenium import webdriver import unittest import time class Vi ...
- [Java] JavaMail 发送带图片的 html 格式的邮件
JavaMail 发送的邮件正文和附件是相互独立的,但是内置图片需要定位图片在正文中的位置,所以内置图片和邮件正文是互相依赖的. 发送带附件的邮件可参考JavaMail 发送 html 格式.带附件的 ...
- 使用JavaMail发送带附件的邮件
所需jar包 链接:http://pan.baidu.com/s/1dFo4cDz 密码:akap 工具类: package com.javamail.utils; import java.util. ...
- java发送带附件的邮件
/** * java发送带附件的邮件 * 周枫 * 2013.8.10 */ package com.dsideal.Util; import javax.mail.*; import javax.m ...
- [SpringBoot] - 发送带附件的邮件
<!--发送email依赖--> <dependency> <groupId>org.springframework.boot</groupId> &l ...
- 利用Python+163邮箱授权码发送带附件的邮件
背景 前段时间写了个自动爬虫的脚本,定时在阿里云服务器上执行,会从某个网站上爬取链接保存到txt文本中,但是脚本不够完善,我需要爬虫完毕之后通过邮件把附件给我发送过来,之前写过一个<利用Pyth ...
- EBS中使用JAVA方式发送HTML格式邮件
转自huan.gu专栏:http://blog.csdn.net/gh320/article/details/17174769 EBS中使用JAVA方式发送HTML格式邮件 一.开发工具:JDevel ...
- C#发送带附件的邮件的代码
如下的代码是关于C#发送带附件的邮件的代码. MailMessage m = new MailMessage();m.Subject = "File attachment!";m. ...
- [Xcode 实际操作]八、网络与多线程-(7)使用MessageUI框架,创建并发送一封带有附件的邮件
目录:[Swift]Xcode实际操作 本文将演示如何使用MessageUI框架,创建并发送一封带有附件的邮件. 使用邮件编辑视图控制器(MFMailComposeViewController)实现邮 ...
随机推荐
- C# 里窗体里(windows form)怎么播放音乐
在.NET的winform里面,没有托管的音乐播放器,API只能播放WAV格式,对于MP3等形式的音频文件,就要依赖于 MediaPlayer里,嘿嘿 使用的方法: 在toolbox上点右键,选择“选 ...
- Android App优化建议(转载)
假如要Google Play上做一个最失败的案例,那最好的秘诀就是界面奇慢无比.耗电.耗内存.接下来就会得到用户的消极评论,最后名声也就臭了.即使你的应用设计精良.创意无限也没用. 耗电或者内存占用等 ...
- angularjs ngTable -Custom filter template-calendar
jsp页面: <script type="text/ng-template" id="path/to/your/filters/top-Date-One.html& ...
- 函数对象的prototype总结
通过看 http://www.cnblogs.com/mindsbook/archive/2009/09/19/javascriptYouMustKnowPrototype.html 该文章和对代码的 ...
- 让ie6/7/8兼容css3的圆角阴影等特殊效果的方法 PIE1.0.0及placeholder在这些IE下生效的方法
PIE地址:http://css3pie.com/ 使用方法1: #login,#AnnouncementBox { border:3px solid #fff; -webkit-border-r ...
- ng-view和ng-include之间的区别
ng-view通过使用路由控制,可以方便的实现页面组合,但一个html文件中,只能有一个ng-view,他是可以被ctl控制的.ng-include就是将多个页面的公共页面提取出来,如header.h ...
- 平衡搜索树(一) AVL树
AVL树 AVL树又称为高度平衡的二叉搜索树,是1962年有俄罗斯的数学家G.M.Adel'son-Vel'skii和E.M.Landis提出来的.它能保持二叉树的高度 平衡,尽量降低二叉树的高度,减 ...
- WHU 1568 Product (DP、逆元)
题意: 定义f(x) 为数x的所有数字的乘积. 求满足f(k)=f(x)的不同的不含数字1的k的个数. x的长度小于50. 不超过1000组数据. Solution: 由于函数是乘积的形式,可以由质因 ...
- visual studio中验证控件的使用
1.RequiredFieldValidator:验证一个必填字段,如果这个字段没填,那么,将不能提交信息. RequiredFieldValidator控件中,主要设置三个属性: (1)ErrorM ...
- 一个基于nodejs,支持http/https的中间人(MITM)代理,便于渗透测试和开发调试。
源码地址:https://github.com/wuchangming/node-mitmproxy node-mitmproxy node-mitmproxy是一个基于nodejs,支持http/h ...