通過Java傳送Email ,簡單入門。
最近沒事做,寫了一個簡單的郵件傳送例項..
首先做好, 準備工作..如果是JDK1.5則要準備如下兩個包.
mail.jar
activation.jar
把這這兩個包,新增到專案的依賴中..
接下來就是寫Email 程式碼的部分:
具體程式碼如下:
/**
* 郵件的基本配置資訊;
* @author Administrator
*
*/
public class MailSenderInfo {
//傳送郵件伺服器;
private String emailServiceHost;
//傳送伺服器埠;
private String emailServicePort;
//郵件傳送者地址;
private String fromAddress;
//郵件接收地址;
private String toAddress;
//登陸郵件伺服器的使用者名稱;
private String userName;
//登陸郵件伺服器的密碼;
private String password;
//是否需要驗證;
private boolean validate;
//郵件主題;
private String subject;
//郵件內容;
private String content;
//附件檔名;
private String[] attachFileNames;
//***getter 和 setter方法省略***
}
接下來封裝傳送郵件的方法.
public class SimpleMailSender {
/**
* 以文字的格式傳送郵件;
* @return boolean;
*/
public boolean sendTextMail(MailSenderInfo mailSenderInfo){
//是否身份驗證;
MyAuthenticator authenticator = null;
//獲取郵件的配置資訊;
Properties properties = new Properties();
properties.put("mail.smtp.host",mailSenderInfo.getEmailServiceHost());
properties.put("mail.smtp.auth", "true");
//判斷是否身份驗證;
if(mailSenderInfo.isValidate()){
//如果是需要身份驗證,這建立一個密碼驗證器;
authenticator = new MyAuthenticator(mailSenderInfo.getUserName(), mailSenderInfo.getPassword());
}
//根據郵件 的使用者名稱和密碼建立一個發郵件的Session;
Session senderMailSession = Session.getDefaultInstance(properties,authenticator);
//根據session建立一個郵件訊息;
Message mailMessage = new MimeMessage(senderMailSession);
try {
try {
//建立郵件傳送者地址;
mailMessage.setFrom(new InternetAddress(mailSenderInfo.getFromAddress()));
//建立郵件接收者地址;
Address toAddress = new InternetAddress(mailSenderInfo.getToAddress());
mailMessage.setRecipient(Message.RecipientType.TO,toAddress);
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//設定郵件主題;
mailMessage.setSubject(mailSenderInfo.getSubject());
//設定郵件傳送時間:
mailMessage.setSentDate(new Date());
//設定郵件內容;設定這個. "text/html;charset=utf-8" 解決內容亂碼問題..
mailMessage.setContent(mailSenderInfo.getContent(),"text/html;charset=utf-8");
//傳送郵件;
Transport.send(mailMessage);
return true;
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
}
最後就是測試郵件傳送:
public class EmailTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MailSenderInfo mailSenderInfo = new MailSenderInfo();
mailSenderInfo.setUserName("myfirstemail@163.com");
mailSenderInfo.setPassword("88888");
mailSenderInfo.setEmailServiceHost("smtp.163.com");
mailSenderInfo.setValidate(true);
mailSenderInfo.setFromAddress("myfirstemail@163.com");
mailSenderInfo.setToAddress("1127290783@126.com");
mailSenderInfo.setSubject("第一封郵件");
mailSenderInfo.setContent("first Email!");
SimpleMailSender sender = new SimpleMailSender();
boolean sendresult= sender.sendTextMail(mailSenderInfo);
if(sendresult){
System.out.println("郵件傳送成功!");
}else{
System.out.println("郵件傳送失敗!");
}
}
}
在測試時, 郵箱一定要設定開通smtp服務的, 像 126,163這些網易郵箱,是預設不開通..所以需要在設定->POP3/SMTP裡面->把smtp服務勾選上..才可以。
還有一個就是,你的郵箱 使用者名稱和 mail.smpt.host.地址要一致,.否則發不出去..
我整了好幾個小時..才測試通過。所以今天特意寫出來.. 希望大家不要遇到我同樣的錯誤...少走彎路。
相關文章
- java 如何實現傳送郵件 email?JavaAI
- spring email 傳送功能SpringAI
- Java Mail 郵件傳送(一):入門DemoJavaAI
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- Xamarin Essentials教程傳送郵件EmailAI
- 使用Apache commons email傳送郵件ApacheAI
- liunx通過TCP傳送資訊TCP
- java 阿里雲簡訊傳送Java阿里
- 使用oracle job定時傳送email郵件OracleAI
- sql注入waf繞過簡單入門SQL
- JavaMail:java使用QQ郵箱傳送郵件簡單版。JavaAI
- Java入門:UDP協議傳送/接收資料實現JavaUDP協議
- Java入門:TCP協議傳送/接收資料實現JavaTCP協議
- MongoDB最簡單的入門教程之五-通過Restful API訪問MongoDBMongoDBRESTAPI
- Azkaban 簡單入門
- Kafka簡單入門Kafka
- 簡單入門Kubernetes
- postgresql 簡單入門SQL
- git簡單入門Git
- SprintBoot簡單入門boot
- SpringSecurity簡單入門SpringGse
- Mysql 簡單入門MySql
- Vue簡單入門Vue
- ReactPortals傳送門React
- 1111傳送門
- PWA超簡單入門
- Android 混淆簡單入門Android
- 小程式 – 簡單入門
- Rust Rocket簡單入門Rust
- Kubernetes Ingress簡單入門
- Quartz - Quartz簡單入門quartz
- 入門Flink,很簡單
- 傳送門:React PortalReact
- Ant Design 傳送門
- Java入門簡述(3)Java
- 聊聊如何在Java應用中傳送簡訊Java
- APP 和 Web 端通過埋點 SDK 傳送的,經過 LogServiceAPPWebGse
- flask入門4-檔案上傳與郵件傳送Flask
- Koa中更方便簡單傳送響應的方式