代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
发送邮件正文是html格式并且显示图片还带有附件的邮件
作者:
swandragon
/ 发布于
2014/8/11
/
627
public void sendMail(int id) { //数据初始化 Transport transport; //发邮件时使用 String part = GetResource.getXMLValue("mail_port"); //端口 String mailhost = GetResource.getXMLValue("mail_server"); //服务器 String user = GetResource.getXMLValue("mail_user"); //用户名 String password = GetResource.getXMLValue("mail_password"); //密码 String from = GetResource.getXMLValue("mail_from"); //发件mail String strname = GetResource.getXMLValue("mail_strname"); //在地址栏上显示的名字 String to = GetResource.getXMLValue("mail_to"); //收件人 String cc = ""; //抄送人 String bcc = ""; //密送人 String title = GetResource.getXMLValue("mail_title"); //标题 byte[] bytes = null; try { bytes = FileIO.readFile(GetResource.getXMLValue("mail_contentpath")); //正文 } catch (IOException ex) { log.error("",ex); } String fromat = GetResource.getXMLValue("mail_fromat"); //获得下载需要的key byte[] bkeydes=null; try { bkeydes=FileIO.readFile(GetResource.getXMLValue("附件地址")); } catch (IOException ex) { log.error("",ex); } try { Properties props = System.getProperties(); //获得系统属性 props.put("mail.smtp.host", mailhost); //设置SMTP主机 props.put("mail.smtp.auth", "true"); //设置身份验证为真,若须身份验证则必须设为真 //获得邮件会话对象 Session session = null; //需要验证 session = Session.getDefaultInstance(props, new SmtpAuthenticator(user, password)); //创建MIME邮件对象 MimeMessage mimeMsg = new MimeMessage(session); //设置发信人 if (strname != null && !strname.equals("")) { mimeMsg.setFrom(new InternetAddress(from, strname)); } else { mimeMsg.setFrom(new InternetAddress(from)); } //设置收信人 if (!to.equals("")) { mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); } //设置抄送人 if (!cc.equals("")) { mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc)); } //设置暗送人 if (!bcc.equals("")) { mimeMsg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(bcc)); } //设置邮件主题 sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder(); // mimeMsg.setSubject("=?GB2312?B?" + enc.encode(title.getBytes()) + // "?="); mimeMsg.setSubject(title, "GBK"); //设置邮件内容 //mimeMsg.setText(content, "gb2312"); //发送日期 mimeMsg.setSentDate(new Date()); /*******************附件 begin××××××××××××××××××××××××*/ BodyPart mbp = null; //正文 //MimeBodyPart mbp1 = null; //附件 mbp = new MimeBodyPart(); //设置邮件正文格式(html/text) if (fromat.equals("0") || fromat.equals("")) { //普通格式 mbp.setText(new String(bytes,"GBK")); } else { //网页格式 mbp.setDataHandler(new DataHandler(new String(bytes,"GBK"), "text/html;charset=gb2312")); } //!!!!注意必须为new MimeMultipart("related"); 这样的实例化才能发送html正文显示图片的邮件 "related" //new MimeMultipart(); 这样实例化则不能发送html正文显示图片的邮件 只可以发送其他的邮件 Multipart mp = new MimeMultipart("related"); if (mbp != null) mp.addBodyPart(mbp); //正文 //附件key.des BodyPart messageBodyPart = new MimeBodyPart(); ByteArrayDataSource fileds = new ByteArrayDataSource(bkeydes,"application/octet-stream"); messageBodyPart.setDataHandler(new DataHandler(fileds)); //解决附件中文问题 //mbp1.setFileName(fileds.getName(),"gb2312"); messageBodyPart.setFileName(MimeUtility.encodeWord("key.des", "GB2312", null)); mp.addBodyPart(messageBodyPart); //附件 图标 messageBodyPart = new MimeBodyPart(); bytes=FileIO.readFile(GetResource.getXMLValue("img_logo")); fileds = new ByteArrayDataSource(bytes,"application/octet-stream"); messageBodyPart.setDataHandler(new DataHandler(fileds)); //解决附件中文问题 // messageBodyPart.setFileName("fruitrsource_touming.jpg"); // messageBodyPart.setHeader("Content-ID", "fruitrsource_touming"); messageBodyPart.setFileName("1.jpg"); //!!!!注意这里是"<IMG1>" 带有尖括号 而在正文的html里面则是src="cid:IMG1" messageBodyPart.setHeader("Content-ID", "<IMG1>"); mp.addBodyPart(messageBodyPart); // 添加 Multipart到Message中 mimeMsg.setContent(mp); mimeMsg.saveChanges(); transport = session.getTransport("smtp"); transport.connect(mailhost, Integer.parseInt(part), user, password); //发送邮件 //transport.send(mimeMsg, mimeMsg.getAllRecipients()); //transport.send(mimeMsg); transport.sendMessage(mimeMsg, mimeMsg.getAllRecipients()); //System.out.println("mail send!"); transport.close(); } catch (Exception e) { e.printStackTrace(); } } class SmtpAuthenticator extends Authenticator { //SMTP身份验证 public SmtpAuthenticator(String username, String password) { this.username = username; this.password = password; } public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(this.username, this.password); } String username = null; String password = null; }
试试其它关键字
发送邮件
html格式
还带有附件
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
swandragon
贡献的其它代码
(
1
)
.
发送邮件正文是html格式并且显示图片还带有附件的邮件
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3