javamail 发送内容为图片的邮件
直接上代码:
package com.javamail;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
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;
import javax.mail.internet.MimeUtility;
public class SendMail
{
//收件人邮箱地址
private String to;
//发件人邮箱地址
private String from;
//SMTP服务器地址
private String smtpServer;
//登录SMTP服务器的用户名
private String username ;
//登录SMTP服务器的密码
private String password ;
//邮件主题
private String subject;
//邮件正文
private String content;
//记录所有附件文件的集合
List<String> attachments
= new ArrayList<String>();
//无参数的构造器
public SendMail()
{
}
public SendMail(String to , String from , String smtpServer
, String username , String password
, String subject , String content)
{
this.to = to;
this.from = from;
this.smtpServer = smtpServer;
this.username = username;
this.password = password;
this.subject = subject;
this.content = content;
}
//to属性的setter方法
public void setTo(String to)
{
this.to = to;
}
//from属性的setter方法
public void setFrom(String from)
{
this.from = from;
}
//smtpServer属性的setter方法
public void setSmtpServer(String smtpServer)
{
this.smtpServer = smtpServer;
}
//username属性的setter方法
public void setUsername(String username)
{
this.username = username;
}
//password属性的setter方法
public void setPassword(String password)
{
this.password = password;
}
//subject属性的setter方法
public void setSubject(String subject)
{
this.subject = subject;
}
//content属性的setter方法
public void setContent(String content)
{
this.content = content;
}
//把邮件主题转换为中文
public String transferChinese(String strText)
{
try
{
strText = MimeUtility.encodeText(
new String(strText.getBytes()
, "GB2312"), "GB2312", "B");
}
catch(Exception e)
{
e.printStackTrace();
}
return strText;
}
//增加附件,将附件文件名添加的List集合中
public void attachfile(String fname)
{
attachments.add(fname);
}
//发送邮件
public boolean send()
{
//创建邮件Session所需的Properties对象
Properties props = new Properties();
props.put("mail.smtp.host" , smtpServer);
props.put("mail.smtp.auth" , "true");
//创建Session对象
Session session = Session.getDefaultInstance(props
//以匿名内部类的形式创建登录服务器的认证对象
, new Authenticator()
{
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(username,password);
}
});
try
{
//构造MimeMessage并设置相关属性值
MimeMessage msg = new MimeMessage(session);
//设置发件人
msg.setFrom(new InternetAddress(from));
//设置收件人
InternetAddress[] addresses = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO , addresses);
//设置邮件主题
subject = transferChinese(subject);
msg.setSubject(subject);
//整个邮件的组成方式
MimeMultipart msgMultipart = new MimeMultipart("related");//邮件的组成方式
MimeBodyPart contents = new MimeBodyPart();//正文
String body = "<img src = \"cid:hango\">";//cid:hango中要注意hango
contents.setContent(body, "text/html;charset=gbk");
msgMultipart.addBodyPart(contents);
MimeBodyPart jpgBodyPart = new MimeBodyPart();
FileDataSource fds = new FileDataSource(content);
jpgBodyPart.setDataHandler(new DataHandler(fds));
jpgBodyPart.setContentID("hango"); //和上面对应
msgMultipart.addBodyPart(jpgBodyPart);
msg.setContent(msgMultipart);
msg.setSentDate(new Date());
// 保存对邮件的修改并写入文件中
msg.saveChanges();
Transport.send(msg);
}
catch (MessagingException mex)
{
mex.printStackTrace();
return false;
}
return true;
}
public static void main(String[] args)
{
// String path = System.getProperty("user.dir")+"\\";
String path = "E:\\apache-tomcat-6.0.29\\webapps\\javamail\\WEB-INF\\";
String[] conf = null;
//读取文件
try {
BufferedReader br = new BufferedReader(new FileReader(path+"config.txt"));
String data = br.readLine();//一次读入一行,直到读入null为文件结束
String config = "";
while(data!=null){
if(!"".equals(data) && !data.contains("#")){
data = data.substring(data.indexOf("=")+1, data.length());
config += data.trim() + ",";
}
data = br.readLine(); //接着读下一行
}
config = config.substring(0,config.length()-1);
conf = config.split(",");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SendMail sendMail = new SendMail();
sendMail.setSmtpServer(conf[0]);
//此处设置登录的用户名
sendMail.setUsername(conf[2]);
//此处设置登录的密码
sendMail.setPassword(conf[3]);
//设置发送人地址
sendMail.setFrom(conf[2]);
//设置标题
sendMail.setSubject(conf[4]);
//设置内容
sendMail.setContent(conf[5]);
//读取文件
try {
BufferedReader br = new BufferedReader(new FileReader(path+conf[6]));
String data = br.readLine();//一次读入一行,直到读入null为文件结束
while( data!=null){
//设置收件人的地址
sendMail.setTo(data);
if (sendMail.send())
{
System.out.println("---邮件发送成功---"+data);
}
data = br.readLine(); //接着读下一行
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
=========config.txt==============
################
#注释请用"#"开头
################
#SMTP服务器
server=smtp.exmail.qq.com
#SMTP端口号
port=25
#用户名
username=
#密码
password=
#邮件主题
title=222
#邮件内容
content=c:\\123.jpg
#收件人TXT
txtPath=to.txt
======to.txt====
1123@qq.com
2323023498@163.com
javamail 发送内容为图片的邮件相关推荐
- Java发送内嵌图片的邮件
使用Java发送邮件时,既需要发送html文档又需要在邮件中内嵌图片(非附件形式),这里封装了一个类使用JavaMail组织的邮件发送,支持多张图片发送,并指定图片位置.注意img标签src要如下写& ...
- JavaMail发送带图片,带附件的邮件
JavaMail发送带图片,带附件的邮件 简介 上一篇文章讲到了使用JavaMail来实现简单邮件的发送,这篇文章是在上一篇文章的基础上来完成的. 导入jar包 <dependency>& ...
- ManagementDay06(javamail 发送html内容和附件 实现用户注册时发个邮件通知)
如果不需要做判断 可以不用手动拼接json串 可以用ctrl+shift+t 可以搜寻类名 就能找到具体的类名 回顾 1.用户--角色Span标签的样式:display:inline-block;wi ...
- 将PPT文件内容转换为图片放在Email邮件正文中发送
通过Email推送统计报告.一般除了要求将PPT报告文件作为附件发给用户,同时希望将报告内容在邮件中直观展示. 一份统计报告中经常包含柱状图.饼图.好看的图表,这些信息要直接在Email中展示比较复杂 ...
- java 发送邮件昵称_利用JavaMail发送QQ邮件
一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮件体之间使用空行分隔. 邮件头包含的内容有: from字段 ...
- Java-使用JavaMail发送一封邮件给用户邮箱功能实现
<---------–start---------–> 通过javamail发送一封邮件: 较早前,我已经编写好了发送邮件的工具类MailUtils.有以下要点需要注意: ① 发件箱的邮件 ...
- JavaMail发送和接收邮件
一.JavaMail概述: JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类.但它并没有包含在JDK中,而是作为JavaEE的一部分. 厂商所提供 ...
- java 邮件 附件_java中javamail发送带附件的邮件实现方法
本文实例讲述了java中javamail发送带附件的邮件实现方法.分享给大家供大家参考.具体分析如下: JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理em ...
- java发送内嵌图片邮件
前言: 博客系统中需要邮件服务的功能,以前写过类似的功能,不过功能太简单了,仅仅是发送文本内容,现在尝试一下发送内嵌图片邮件! 准备工作: 请参考:http://www.cnblogs.com/huj ...
最新文章
- WebService的编写与调用
- linux网络批量安装上限,linux基于网络的批量安装
- Java操作SQL Server数据库
- 多样化实现Windows Phone 7本地数据访问3——DB4O
- UI自动化web端框架path.py代码
- P1850-换教室【数学期望,dp,Floyd】
- MX250和第三方Linux版区别,MX250和MX350哪个好一点,区别和差距在哪里?求推荐?_科技数码通...
- Swagger使用————接口参数注解的使用缺陷
- nginx重启、关闭
- web前端基础(08html5新标签)
- 【往届已EI稳定检索】第二届计算机科学与管理科技国际学术会议,多主题征稿!...
- 51单片机入门——8X8点阵LED
- Windows11 使用IE浏览器
- TigerGraph百万美元挑战赛奖项全揭晓,通过图技术解决全球问题的创新方案令人印象深刻
- Recipe 1.5. Trimming Space from the Ends of a String(Python Cookbook)
- 阿里妈妈Dolphin分布式向量召回技术详解
- 升级至android 5.0,OPPO X9007 升级到Android5.0 Color2.1(root版) 详细纪实
- 32位oracle10,Oracle10g32位升级到64位方法
- 深度学习电脑配置推荐
- el-checkbox点击没反应
热门文章
- 毕业设计 stm32单片机便携体检仪(源码+硬件+论文)
- 网狐国际U3D客户端无法连接旗舰大联盟服务解决
- 2021年江苏省安全员A证考试资料及江苏省安全员A证免费试题
- php学生成绩管理系统,在线录入、统计学生成绩,多种图表展示对比学生成绩
- go 语言中 struct 中 json 是代表什么意思
- totolinkn200up怎么设置_totolink300无线中继怎么设置
- discuz迁移到虚拟空间后无法上传图片的问题
- 通向实在之路暂记008:黎曼曲面和复映射
- 专利与论文-7:专利在哪儿?如何发现专利?思维分析方法
- 我们熟知的广告词经常使用这个套路