您的位置:首页 > 编程语言 > Java开发

JAVA MAIL发送邮件实例

2015-11-03 15:32 483 查看
项目用到一需求,完成特定任务后需要自动发邮件给客户,看了下javamail比较简单...不啰嗦,你懂的,然后就开始写写个简单的入门,先百度找到

mail.jar ,commons-email-X.X.jar ,activation.jar 这三个jar,放进项目里

先写个简单的mail对象

[html] view
plaincopy

package com.shadow.mvc.vo;

import java.io.Serializable;

/**

* Mail属性实体

*

* @author shadow

*

*/

@SuppressWarnings("serial")

public class Mail 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 getReceiver() {

return receiver;

}

public void setReceiver(String receiver) {

this.receiver = receiver;

}

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;

}

}

然后就写个工具类

[html] view
plaincopy

package com.shadow.extras.util;

import org.apache.commons.mail.EmailException;

import org.apache.commons.mail.HtmlEmail;

import org.apache.log4j.Logger;

import com.shadow.mvc.vo.Mail;

/**

* 邮件发送工具实现类

*

* @author shadow

* @create 2013/07/12

*/

public class MailUtil {

protected final Logger logger = Logger.getLogger(getClass());

public boolean send(Mail mail) {

// 发送email

HtmlEmail email = new HtmlEmail();

try {

// 这里是SMTP发送服务器的名字:163的如下:"smtp.163.com"

email.setHostName(mail.getHost());

// 字符编码集的设置

email.setCharset(Mail.ENCODEING);

// 收件人的邮箱

email.addTo(mail.getReceiver());

// 发送人的邮箱

email.setFrom(mail.getSender(), mail.getName());

// 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码

email.setAuthentication(mail.getUsername(), mail.getPassword());

// 要发送的邮件主题

email.setSubject(mail.getSubject());

// 要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签

email.setMsg(mail.getMessage());

// 发送

email.send();

if (logger.isDebugEnabled()) {

logger.debug(mail.getSender() + " 发送邮件到 " + mail.getReceiver());

}

return true;

} catch (EmailException e) {

e.printStackTrace();

logger.info(mail.getSender() + " 发送邮件到 " + mail.getReceiver()

+ " 失败");

return false;

}

}

}

最后写个main方法测试下

[html] view
plaincopy

public static void main(String[] args) {

Mail mail = new Mail();

mail.setHost("smtp.163.com"); // 设置邮件服务器,如果不用163的,自己找找看相关的

mail.setSender("shadowsick@163.com");

mail.setReceiver("shadowsick@163.com"); // 接收人

mail.setUsername("shadowsick@163.com"); // 登录账号,一般都是和邮箱名一样吧

mail.setPassword("xxxxx"); // 发件人邮箱的登录密码

mail.setSubject("aaaaaaaaa");

mail.setMessage("bbbbbbbbbbbbbbbbb");

new MailUtil().send(mail);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: