java邮件发送:利用现有的邮件账户发送邮件,比如说,我在网易注册一个邮箱账户,通过JAVA操控,我可以不亲自登录网易邮箱,让程序自动的使用网易邮箱发送邮件。这一机制被广泛的用在注册激活和垃圾邮件的发送等方面。
实现:
1.JavaMail
可以到http://www.oracle.com/technetwork/java/javamail/index-138643.html进行下载,并将mail.jar添加到classpath即可。但是其操作过程十分繁琐,笔者搞了好长时间才还没弄好.
2.Apache Commons Email
简介:
Commons Email封装了javamail,使用非常简单。
功能:简单文本邮件、带附件的邮件、HTML格式的邮件
官方首页:http://commons.apache.org/email/,
官方示例:http://commons.apache.org/email/userguide.html
使用前需引入3个jar文件:commons-email-1.1.jar、javamail.jar、activation.jar
或者使用maven在pom.xml加入:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.3.2</version>
</dependency>
示例:
Email email = new Email();
email.setHostName("smtp.qq.com");
email.setSmtpPort(465);
email.setAuthentication("1776898728@qq.com","mraaxppugeeyhheb");//邮件服务器验证:用户名/密码
email.setSSLOnConnect(true);
email.setCharset("UTF-8");// 必须放在前面,否则乱码
try {
email.setFrom("1776898728@qq.com", "1776898728");
email.setSubject("subject中文");
email.setMsg("msg中文");
email.addTo("1234567@qq.com");
email.send();
} catch (EmailException e) {
e.printStackTrace();
}
说明:
1.email.setAuthentication(“1776898728@qq.com”,”mraaxppugeeyhheb”);这里的密码是授权密码!!!
在邮箱的设置->账户栏里先开启stmp服务,在设置密码
2.哪出错了就找官网!!!!笔者之前看的博客,一直错,到官网一查,一目了然=_=