今天第一次來上海市虹口圖書館上自習,感覺還是很爽的。自己擼代碼學會了發送郵件。啥都不說了,直接擼代碼吧!
首先 必須引進來三個jar包:
compile 'javax.mail:mail:1.4.7'
compile 'org.apache.commons:commons-email:1.3.2'
compile 'javax.activation:activation:1.1'
這是我gradle配置文件的配制方法。
1.Mail對象 里面包含發送郵件的信息
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; } }
2.發送郵件的工具類
import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; import org.apache.log4j.Logger; /** * 郵件發送工具實現類 * * @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; } } }
3.測試類
/** * Created by DELL on 2016/6/19. */ public class test { public static void main(String[] args) { Mail mail = new Mail(); mail.setHost("smtp.163.com"); // 設置郵件服務器,如果不用163的,自己找找看相關的 mail.setSender("baizhanshijava@163.com"); mail.setReceiver("baizhanshijava@163.com"); // 接收人 mail.setUsername("baizhanshijava@163.com"); // 登錄賬號,一般都是和郵箱名一樣吧 mail.setPassword("XXXxxxx"); // 發件人郵箱的登錄密碼 此密碼必須是你在郵箱設置打開pop3和SMTP之后設置的密碼,否則收不到郵件的 mail.setSubject("nishishsi"); mail.setMessage("welcome to china"); new MailUtil().send(mail); } }
4.總結 :不管怎么說還是有點成就感的。以后每周還是要來圖書館充充電的。