java邮件发送代码_用Java实现最简单的邮件发送代码
1.
import?javax.mail.Authenticator;
import?javax.mail.PasswordAuthentication;
/*
* 在真正使用創建的過程中,往往會讓我們驗證密碼,這是我們要寫一個密碼驗證類。javax.mail.Authenticator是一個抽象類,
* 我們要寫MyAuthenticator的密碼驗證類,該類繼承Authenticator實現:
* */
//用戶名密碼驗證,需要實現抽象類Authenticator的抽象方法PasswordAuthentication
public class?MyAuthenricator?extends?Authenticator?{
String?u?=?null;
String?p?=?null;
public?MyAuthenricator(String u,?String p){
this.u=u;
this.p=p;
}
@Override
protected?PasswordAuthentication?getPasswordAuthentication() {
return new?PasswordAuthentication(u,p);
}
}
2.
import?javax.mail.Session;
import?javax.mail.Transport;
import?javax.mail.internet.InternetAddress;
import?javax.mail.internet.MimeMessage;
import?java.util.Date;
import?java.util.Properties;
public class?MailExample?{
public static void?main(String[]?args)?throws?Exception?{
/**
* 1.配置發件人郵箱信息以及創建一個Java 配置類存放SMTP服務器地址等參數。
*/
String sendEmailAccount =?"d9_felix@163.com";?// 發件人郵箱
String sendEmailPassword =?"zxc751953.";?// 發件人密碼
String sendEmailSMTPHost =?"smtp.163.com";?// 發件人郵箱的 SMTP 服務器地址, 此處為Outlook郵箱的SMTP服務器
String receiveMailAccount =?"1390095964@qq.com";?// 收件人郵箱
Properties props =?new?Properties();?// 使用Java配置類進行配置
props.setProperty("mail.transport.protocol",?"smtp");?// 使用的協議(JavaMail規范要求)
props.setProperty("mail.smtp.host",?sendEmailSMTPHost);?// 發件人的郵箱的 SMTP 服務器地址
props.setProperty("mail.smtp.auth",?"true");?// 需要請求認證
final?String smtpPort =?"25";?// 默認端口號設置為587,也可以設置為465,具體取決于SMTP服務器要求的端口號
props.setProperty("mail.smtp.port",smtpPort?);
props.setProperty("mail.smtp.socketFactory.fallback",?"false");
props.setProperty("mail.smtp.starttls.enable",?"true");
props.setProperty("mail.smtp.socketFactory.port",?smtpPort?);
/**
* 2.創建一個同郵件服務器交互的session
*/
Session session = Session.getDefaultInstance(props, new?MyAuthenricator("d9_felix",?"Gg9999999"));
session.setDebug(true);
MimeMessage message =?new?MimeMessage(session);?// 1. 創建一封郵件
message.setFrom(new?InternetAddress(sendEmailAccount,?"ExampleFrom",?"UTF-8"));?// 2. From: 發件人
message.setRecipient(MimeMessage.RecipientType.TO,
new?InternetAddress(receiveMailAccount,?"ExampleUser",?"UTF-8"));?// 3. To: 收件人
message.setSubject("",?"UTF-8");?// 4. Subject: 郵件主題(標題有廣告嫌疑,避免被郵件服務器誤認為是濫發廣告以至返回失敗,請修改標題)
message.setContent("
This is a test email.
",?"text/html;charset=UTF-8");?// 5. Content: 郵件正文message.setSentDate(new?Date());?// 6. 設置郵件發件時間
message.saveChanges();?// 7. 保存設置
/**
* 3.創建一封格式化的郵件
*/
Transport transport = session.getTransport();?// 1. 根據 Session 獲取郵件傳輸對象
transport.connect(sendEmailAccount,?sendEmailPassword);?// 2. 使用 郵箱賬號 和 密碼 連接郵件服務器
transport.sendMessage(message,?message.getAllRecipients());?// 3. 發送郵件, 發到所有的收件地址, message.getAllRecipients() 獲取到的是在創建郵件對象時添加的所有收件人, 抄送人,
transport.close();?// 4. 關閉連接
}
}
因為這是很早之前寫的記錄 當時記錄比較粗糙 沒有過細 等以后有時間了再過來細化吧
總結
以上是生活随笔為你收集整理的java邮件发送代码_用Java实现最简单的邮件发送代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: poker java idea_Java
- 下一篇: java全写_Java 写文件