第一步 导入三个文件:
activation.jar
commons-email-1.2.jar
mail.jar
第二步 由于myecilpse系统自带的javaee.jar包含有activation.jar和mail.jar .所有需要删除掉javaee.jar中的包。不然会发生冲突。报错。
第三步 编写emial实体类。
</pre><pre name="code" class="html"><pre name="code" class="java">package com.gta.Mail;
import java.io.Serializable;
public class Emailentry implements Serializable {
public static final String ENCODEING = "UTF-8";
private String host; // 服务器地址
private String sender; // 发件人的邮箱
private String[] receiver; // 收件人的邮箱
private String name; // 发件人昵称
private String username; // 账号
private String password; // 密码
private String subject; // 主题
private String message; // 信息(支持HTML)
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getSender() {
return sender;
}
public void setSender(String sender) {
this.sender = sender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String[] getReceiver() {
return receiver;
}
public void setReceiver(String[] receiver) {
this.receiver = receiver;
}
}
第四步 实现发送emial的类
package com.gta.Mail;
import java.util.Properties;
import javax.mail.Session;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
public class MessageImpl {
/**
* @param args
*/
//登录邮件客户端(创建session)
public boolean send(Emailentry mail) {
// 发送email
HtmlEmail email = new HtmlEmail();
try {
// 这里是SMTP发送服务器的名字:163的如下:"smtp.163.com"
email.setHostName(mail.getHost());
// 字符编码集的设置
email.setCharset(Emailentry.ENCODEING);
// 收件人的邮箱
for(int i = 0;i<mail.getReceiver().length;i++){
email.addTo(mail.getReceiver()[i]);
}
// 发送人的邮箱
email.setFrom(mail.getSender(), mail.getName());
// 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码
email.setAuthentication(mail.getUsername(), mail.getPassword());
// 要发送的邮件主题
email.setSubject(mail.getSubject());
// 要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签
email.setMsg(mail.getMessage());
// 发送
email.send();
return true;
}
catch (EmailException e) {
e.printStackTrace();
return false;
}
}
}
第五步 email测试类
package com.gta.Mail;
import javax.servlet.http.HttpServletRequest;
import javax.swing.JFrame;
import javax.swing.JTable;
import org.apache.struts2.ServletActionContext;
import com.gtadata.vms.model.ApplicationInfo;
public class EmailTest extends JFrame{
/**
* @param args
*/
private ApplicationInfo applicationInfo;
public boolean EMAIL() {
// TODO Auto-generated method stub
//testEmail :soft03_test@sina.com
Emailentry mail = new Emailentry();
HttpServletRequest request = ServletActionContext.getRequest();
mail.setHost("smtp.sina.com"); // 设置邮件服务器,可以在网上搜索发送邮件的软件的邮件服务器,这个为新浪邮箱。
mail.setSender(applicationInfo.getProductorEmail()+"@sina.com");
mail.setName(applicationInfo.getProductorName());
<span style="white-space:pre"> </span>//多个收件人
String[] rece = new String[4];
rece[0] = applicationInfo.getAppDeptEmail()+"@gtafe.com";
rece[1] = applicationInfo.getProductorEmail()+"@gtafe.com";
rece[2] = applicationInfo.getAppEmail()+"@gtafe.com";
rece[3] = applicationInfo.getProductorLeaderContact()+"@gtafe.com";
mail.setReceiver(rece); // 接收人
mail.setUsername(applicationInfo.getProductorName()); // 登录账号,一般都是和邮箱名一样吧
mail.setPassword(applicationInfo.getProdEmailpwd()); // 发件人邮箱的登录密码
mail.setSubject("XXXXXX");
mail.setMessage("邮件测试");
if(new MessageImpl().send(mail)){
return true;
}else{
return false;
}
}
public ApplicationInfo getApplicationInfo() {
return applicationInfo;
}
public void setApplicationInfo(ApplicationInfo applicationInfo) {
this.applicationInfo = applicationInfo;
}
}
new一个类
EmailTest
并运行这个类的方法EMIAL();就可以发送邮件
注意,过程中需要在邮件中设置 开启邮件的smtp协议,不然发送报错。