简单的java实现发送电子邮件

这里实现用Java发送电子邮件,可以发送简单文本,或者html,再或者就是带附件了。

首先就是需要两个包,我用的是apache中commons中的,下载地址http://commons.apache.org/可以去下载。

需要的两个包为:mail.jar、commons-email.jar;

下面为发送文本的代码实现:

复制代码
View Code
import org.apache.commons.mail.Email;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;

public class SimpleEmailTest {

public static void main(String[] args) {
Email email = new SimpleEmail();
//smtp.qq.com是腾讯的邮件服务器;各邮箱的都可以查到;这里用QQ吧
email.setHostName("smtp.qq.com");
//发送邮件的帐号、密码
email.setAuthentication("840***413", "123****");
email.setCharset("UTF-8");
//是否加密,基本都是true
email.setTLS(true);
try {
//这里是发送方的邮件
email.setFrom("840***413@qq.com");
email.setSubject("commons email");
//这里放的就是要发送的文本内容了
email.setMsg("这是利用commons包发出的电子邮件");
//发送目的邮箱
email.addTo("××××@163.com");
email.send();
} catch (EmailException e) {
e.printStackTrace();
}
}
}
复制代码

很简单,发送html的或者带附件的都差不多,下面是发送html的,注意与上面的变化

复制代码
View Code
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;

public class HtmlEmailTest {

public static void main(String[] args) {
HtmlEmail email = new HtmlEmail();//变化1
email.setHostName("smtp.qq.com");
email.setAuthentication("840***413", "131*****");
email.setCharset("UTF-8");
email.setTLS(true);

try {
email.setFrom("840***413@qq.com");
email.setSubject("commons email");
email.setHtmlMsg("<div style=\"color:red;font-size:66px\">你好,这是测试邮件</div>");
email.addTo("***@163.com");
email.send();
} catch (EmailException e) {
e.printStackTrace();
}
}
}
复制代码

下面是发送带附件的邮件

复制代码
View Code
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.MultiPartEmail;

public class AttMailTest {

public static void main(String[] args) {
EmailAttachment ea = new EmailAttachment();//附件
ea.setPath("c:\\bar.jpg");//本地随便一个文件

MultiPartEmail email = new MultiPartEmail();
email.setHostName("smtp.qq.com");
email.setAuthentication("840***413", "131****");
email.setCharset("UTF-8");
email.setTLS(true);

try {
email.setFrom("840***413@qq.com");
email.setSubject("commons email");
email.setMsg("这是利用commons包发出的电子邮件");
email.addTo("***@163.com");
email.attach(ea);
email.send();
} catch (EmailException e) {
e.printStackTrace();
}

}
}
复制代码

其实基本没什么变化;这里有点要注意,现在工程是个Java工程,如果是web工程可能出现不能发送情况,原因是Myeclipse自带的

包中有mail.jar,但版本已经不对,需要手动删除,导入新下载的包,当初也是搜索了异常才解决问题;还有就是要对邮箱进行一些设置,这个

比较简单,程序运行后,如果没发送成功(不报错),一般qq会给你发送一封邮件告诉你应该设置某些邮箱参数(打开或者关闭)

posted on   似非而是  阅读(648)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述

导航

< 2011年11月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10
点击右上角即可分享
微信分享提示