用java发送email邮件例子
2024-10-10 12:14:19
package com.hzk.mail; import java.net.MalformedURLException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date; import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail; /***
* HtmlEmail 用于发送HTML格式的邮件。完全的兼容MultiPartEmail, 易于添加附件,同时也支持内嵌图像
* MultiPartEmail 用于发送带附件的或者内嵌形式的邮件
* @author Administrator
*
*/
public class MailTest2 {
public static void main(String[] args) {
try {
//Create the attachment 创建附件1
//System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
EmailAttachment attachment1 = new EmailAttachment();
attachment1.setURL(new URL("http://www.apache.org/images/asf_logo_wide.gif")); // 发送网络文件
attachment1.setDisposition(EmailAttachment.ATTACHMENT);
attachment1.setDescription("apache logo");
attachment1.setName("apache logo"); //Create the attachment 创建附件2
EmailAttachment attachment2 = new EmailAttachment(); //发送本地文件
attachment2.setPath("img/qq_znone.gif");//不支持png格式的图片
attachment2.setDisposition(EmailAttachment.ATTACHMENT);
attachment2.setDescription("qq znone logo");
attachment2.setName("qq znone logo"); //Create the mail message
HtmlEmail htmlEmail = new HtmlEmail();
htmlEmail.setHostName("smtp.163.com");//你的邮件服务器的地址
htmlEmail.setAuthentication("tjhouzhikai", "757583770");//如果你的邮件服务器设置了密码,请输入密码,否则此语句可以忽略
htmlEmail.addTo("china_houzhikai@163.com", null);//设置收件人,如果想添加多个收件人,将此语句多写几次即可。
//其中参数1,代表收件人邮件地址;
//参数2,用于收件人收到邮件时看到的收件人姓名
htmlEmail.setFrom("tjhouzhikai@163.com", "张三");//发件人
htmlEmail.setCharset("UTF-8");
htmlEmail.setSubject("带图片和附件的java测试");
htmlEmail.setMsg("hello wellcome"); URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
String cid = htmlEmail.embed(url, "Apache logo");
String testEditor = "亲 你想登录qq空间吗?想的话就<a href='http://qzone.qq.com/'> 点击 </a>"+
"<br />"+
"<html>" +
"<img src=\"cid:"+cid+"\">" +
"<br />" +
"<iframe src='http://i.qq.com' height='100' scrolling='auto' width='50%' frameborder='1'></iframe>" +
"</html>";///关于iframe :出于安全考虑,大多邮箱是不支持iframe框架或javascript脚本内容的,也就是说,你就算成功把内容发给别人,对方邮箱不一定能把内容显示出来,例如发给qq、163、126等主流邮箱就不行,会显示空白。 htmlEmail.setHtmlMsg(testEditor);//testEditor 变量包含html内容
htmlEmail.attach(attachment1);//添加 --附件 1
htmlEmail.attach(attachment2);//添加 --附件 2 htmlEmail.send();//发送邮件
System.out.println("发送成功!");
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (EmailException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
}
邮件箱截图如下:
=======================================================================================================================================
最新文章
- OC中的深拷贝与浅拷贝
- FME2014汉化问题
- Google翻译
- 关于 Cocoa Pods 的使用
- 模板-->;中国剩余定理[互质版本]
- jQuery 分割按钮(Split Button)
- SQL Server 查看数据库空间分配情况的 2 种方法
- openssl生成pem,密钥证书的创建
- Windows Phone开发(40):漫谈关键帧动画之中篇
- composer 安装和修改中国镜像
- .Net 调用微信公众号扫一扫
- ArXiv最受欢迎开源深度学习框架榜单:TensorFlow第一,PyTorch第四
- 如何解决Mac无法读取外置硬盘问题?
- [WC2018]通道——边分治+虚树+树形DP
- PM学习梳理--搭建产品架构
- 修改tomcat的默认访问日志信息
- 交换上的FLAPPING事件 (zhuan)
- MySQL事件不自动执行
- Redis 学习笔记(十二)Redis 复制功能详解 ----- (error) READONLY You can&#39;t write against a read only slave
- zookeeper leader选举机制
热门文章
- [Angular2 Router] Exiting an Angular 2 Route - How To Prevent Memory Leaks
- 对cocos2d 之autorelease\ratain\release的理解
- D2 前端技术论坛总结(下)
- APP快速通过苹果AppStore审核九大诀窍
- DNS服务器全面解析--转
- ALM/QC OTA Field in Database(查询ALM数据库的字段)
- EntityFramework优缺点(转)
- java发送邮件 实现编辑html代码
- date类型时间比较大小
- IOS开发UI篇之tableView 的用法详解