您好,登錄后才能下訂單哦!
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
/**
?* javaMail發送郵件工具類
?*?
?* @author
?* @version 1.0
?*/
public class MailUtil {
? ? /**
? ? ?* 附件地址
? ? ?*/
? ? private String filepath;
? ? /**
? ? ?* 取附件
? ? ?*?
? ? ?* @return filepath
? ? ?*/
? ? public String getFilepath() {
? ? ? ? return filepath;
? ? }
? ? /**
? ? ?* 設置附件
? ? ?*?
? ? ?* @param filepath filepath
? ? ?*/
? ? public void setFilepath(String filepath) {
? ? ? ? this.filepath = filepath;
? ? }
? ? /**
? ? ?* 發送郵件的服務器地址
? ? ?*/
? ? private String mailServerHost = "smtp.exmail.qq.com";
? ? /**
? ? ?* 發送郵件的服務器端口
? ? ?*/
? ? private String mailServerPort = "25";
? ? /**
? ? ?* 設置發送郵件前是否需要驗證
? ? ?*/
? ? private boolean validate = true;
? ? /**
? ? ?* 設置發送郵件的賬號
? ? ?*/
? ? private String userName = "235583@qq.com";
? ? /**
? ? ?* 郵件密碼
? ? ?*/
? ? private String userPass = "Cd1555";
? ? /**
? ? ?* 設置發送郵件的地址
? ? ?*/
? ? private String fromAddress = "23558@qq.com";
? ? /**
? ? ?* 郵件發送對象
? ? ?*/
? ? private String toAddress = "2355836@qq.com";
? ? /**
? ? ?* 設置發送郵件的主題
? ? ?*/
? ? private String subject = "測試java發送郵件";
? ? /**
? ? ?* 郵件內容
? ? ?*/
? ? private String content = "您好!<br/>這里用java發送郵件的測試內容<br/><br/>-<br/>";
? ? /**
? ? ?* 設置發送郵件的格式是否采用html編碼
? ? ?*/
? ? private boolean isHTML = true;
? ? /**
? ? ?* 設置發送郵件是否采用安全連接
? ? ?*/
? ? private boolean isSSL = false;
? ? /**
? ? ?* 設置發送郵件的主機
? ? ?*?
? ? ?* @param mailServerHost
? ? ?*? ? ? ? ? ? 發送郵件的服務器地址
? ? ?*/
? ? public void setMailServerHost(String mailServerHost) {
? ? ? ? this.mailServerHost = mailServerHost;
? ? }
? ? /**
? ? ?* 設置發送郵件的服務器端口 <br/>
? ? ?* 說明:默認值"25"
? ? ?*?
? ? ?* @param mailServerPort
? ? ?*? ? ? ? ? ? 發送郵件的服務器端口
? ? ?*/
? ? public void setMailServerPort(String mailServerPort) {
? ? ? ? this.mailServerPort = mailServerPort;
? ? }
? ? /**
? ? ?* 設置發送郵件前是否需要驗證 <br/>
? ? ?* 說明:默認值true要驗證
? ? ?*?
? ? ?* @param validate
? ? ?*? ? ? ? ? ? true要驗證 or false不驗證
? ? ?*/
? ? public void setValidate(boolean validate) {
? ? ? ? this.validate = validate;
? ? }
? ? /**
? ? ?* 設置發送郵件的地址 <br/>
? ? ?* 說明:默認值"xxxxxxx@qq.com"
? ? ?*?
? ? ?* @param fromAddress
? ? ?*? ? ? ? ? ? 發送郵件的地址
? ? ?*/
? ? public void setFromAddress(String fromAddress) {
? ? ? ? this.fromAddress = fromAddress;
? ? }
? ? /**
? ? ?* 設置接收郵件的地址 <br/>
? ? ?* 說明:默認值"xxxxxxxx@qq.com"
? ? ?*?
? ? ?* @param toAddress
? ? ?*? ? ? ? ? ? 接收郵件的地址
? ? ?*/
? ? public void setToAddress(String toAddress) {
? ? ? ? this.toAddress = toAddress;
? ? }
? ? /**
? ? ?* 設置發送郵件的主題 <br/>
? ? ?* 說明:默認值"測試java發送郵件"
? ? ?*?
? ? ?* @param subject
? ? ?*? ? ? ? ? ? 發送郵件的主題
? ? ?*/
? ? public void setSubject(String subject) {
? ? ? ? this.subject = subject;
? ? }
? ? /**
? ? ?* 設置發送郵件的內容 <br/>
? ? ?* 說明:默認值"您好!<br/>
? ? ?* 這里用java發送郵件的測試內容<br/>
? ? ?* <br/>
? ? ?* -頂呱呱<br/>
? ? ?* "
? ? ?*?
? ? ?* @param content
? ? ?*? ? ? ? ? ? 發送郵件的內容
? ? ?*/
? ? public void setContent(String content) {
? ? ? ? this.content = content;
? ? }
? ? /**
? ? ?* 設置發送郵件的格式是否采用html編碼 <br/>
? ? ?* 說明:默認true是
? ? ?*?
? ? ?* @param isHTML
? ? ?*? ? ? ? ? ? true是 false否
? ? ?*/
? ? public void setHTML(boolean isHTML) {
? ? ? ? this.isHTML = isHTML;
? ? }
? ? /**
? ? ?* 設置發送郵件是否采用安全連接 <br/>
? ? ?* 說明:默認false否
? ? ?*?
? ? ?* @param isSSL
? ? ?*? ? ? ? ? ? true是 false否
? ? ?*/
? ? public void setSSL(boolean isSSL) {
? ? ? ? this.isSSL = isSSL;
? ? }
? ? /**
? ? ?* 設置發送郵件的賬號
? ? ?*?
? ? ?* @param userName
? ? ?*? ? ? ? ? ? 發送郵件的賬號
? ? ?*/
? ? public void setUserName(String userName) {
? ? ? ? this.userName = userName;
? ? }
? ? /**
? ? ?* 設置發送郵件的賬號密碼
? ? ?*?
? ? ?* @param userPass
? ? ?*? ? ? ? ? ? 發送郵件的賬號密碼
? ? ?*/
? ? public void setUserPass(String userPass) {
? ? ? ? this.userPass = userPass;
? ? }
? ? /**
? ? ?* 發送郵件
? ? ?*?
? ? ?* @param toAddress
? ? ?*? ? ? ? ? ? 收件人郵箱地址
? ? ?* @param subject
? ? ?*? ? ? ? ? ? 郵件主題
? ? ?* @param content
? ? ?*? ? ? ? ? ? 郵件內容
? ? ?* @param filepath
? ? ?*? ? ? ? ? ? 附件地址
? ? ?* @return true:發送成功;false:發送失敗
? ? ?*/
? ? public boolean sendMail(String toAddress, String subject, String content,
? ? ? ? ? ? String filepath) {
? ? ? ? this.toAddress = toAddress;
? ? ? ? this.subject = subject;
? ? ? ? this.content = content;
? ? ? ? this.filepath = filepath;
? ? ? ? return sendMail();
? ? }
? ? /**
? ? ?* 發送郵件
? ? ?*?
? ? ?* @return true:發送成功;false:發送失敗
? ? ?*/
? ? public boolean sendMail() {
? ? ? ? Properties p = new Properties();
? ? ? ? p.put("mail.smtp.host", mailServerHost);
? ? ? ? p.put("mail.smtp.port", mailServerPort);
? ? ? ? p.put("mail.smtp.auth", validate ? "true" : "false");
? ? ? ? if (isSSL) {
? ? ? ? ? ? p.put("mail.smtp.starttls.enable", "true");
? ? ? ? ? ? p.put("mail.smtp.socketFactory.fallback", "false");
? ? ? ? ? ? p.put("mail.smtp.socketFactory.port", mailServerPort);
? ? ? ? }
? ? ? ? Authenticator auth = null;
? ? ? ? if (validate) {
? ? ? ? ? ? auth = new MyAuthenticator(userName, userPass);
? ? ? ? }
? ? ? ? try {
? ? ? ? ? ? Session session = Session.getDefaultInstance(p, auth);
? ? ? ? ? ? Message message = new MimeMessage(session);
? ? ? ? ? ? Address from = new InternetAddress(fromAddress);
? ? ? ? ? ? Address to = new InternetAddress(toAddress);
? ? ? ? ? ? message.setFrom(from);
? ? ? ? ? ? message.setRecipient(Message.RecipientType.TO, to);
? ? ? ? ? ? message.setSubject(subject);
? ? ? ? ? ? message.setSentDate(new Date());
? ? ? ? ? ? if (isHTML) {
? ? ? ? ? ? ? ? Multipart m = new MimeMultipart();
? ? ? ? ? ? ? ? BodyPart bp = new MimeBodyPart();
? ? ? ? ? ? ? ? bp.setContent(content, "text/html; charset=utf-8");
? ? ? ? ? ? ? ? // 加入附件
? ? ? ? ? ? ? ? FileDataSource ds = new FileDataSource(filepath);
? ? ? ? ? ? ? ? bp.setDataHandler(new DataHandler(ds));
? ? ? ? ? ? ? ? bp.setFileName(MimeUtility.encodeText(ds.getName()));
? ? ? ? ? ? ? ? m.addBodyPart(bp);
? ? ? ? ? ? ? ? message.setContent(m);
? ? ? ? ? ? } else
? ? ? ? ? ? ? ? message.setText(content);
? ? ? ? ? ? Transport.send(message);
? ? ? ? ? ? return true;
? ? ? ? } catch (Exception e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? return false;
? ? ? ? }
? ? }
? ? /**
? ? ?* 測試發送
? ? ?*?
? ? ?* @param args
? ? ?*? ? ? ? ? ? 參數
? ? ?*/
? ? public static void main(String[] args) {
? ? ? ? boolean x = new MailUtil().sendMail();
? ? ? ? LoggerUtils.info(x);
? ? }
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。