今天第一次來上海市虹口圖書館上自習,感覺還是很爽的。自己擼代碼學會了發送郵件。啥都不說了,直接擼代碼吧!
首先 必須引進來三個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.總結 :不管怎么說還是有點成就感的。以后每周還是要來圖書館充充電的。
