shadowsick的专栏

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

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

先写个简单的mail对象

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;}}

然后就写个工具类

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) {// 发送emailHtmlEmail 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方法测试下

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);}

最后看看效果

,为什么?答:点线杆上贴着”“此处不许小便!”

shadowsick的专栏

相关文章:

你感兴趣的文章:

标签云: