日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java邮件实例_java邮件小实例

發布時間:2023/12/9 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java邮件实例_java邮件小实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

新建一個包,名為mail

第一個類:MailSenderInfo.java

###########################################

package com.util.mail;

/**

* 發送郵件需要使用的基本信息

*author by wangfun

http://www.5a520.cn 小說520

*/

import java.util.Properties;

public class MailSenderInfo {

// 發送郵件的服務器的IP和端口

private String mailServerHost;

private String mailServerPort = "25";

// 郵件發送者的地址

private String fromAddress;

// 郵件接收者的地址

private String toAddress;

// 登陸郵件發送服務器的用戶名和密碼

private String userName;

private String password;

// 是否需要身份驗證

private boolean validate = false;

// 郵件主題

private String subject;

// 郵件的文本內容

private String content;

// 郵件附件的文件名

private String[] attachFileNames;

/**

* 獲得郵件會話屬性

*/

public Properties getProperties(){

Properties p = new Properties();

p.put("mail.smtp.host", this.mailServerHost);

p.put("mail.smtp.port", this.mailServerPort);

p.put("mail.smtp.auth", validate ? "true" : "false");

return p;

}

public String getMailServerHost() {

return mailServerHost;

}

public void setMailServerHost(String mailServerHost) {

this.mailServerHost = mailServerHost;

}

public String getMailServerPort() {

return mailServerPort;

}

public void setMailServerPort(String mailServerPort) {

this.mailServerPort = mailServerPort;

}

public boolean isValidate() {

return validate;

}

public void setValidate(boolean validate) {

this.validate = validate;

}

public String[] getAttachFileNames() {

return attachFileNames;

}

public void setAttachFileNames(String[] fileNames) {

this.attachFileNames = fileNames;

}

public String getFromAddress() {

return fromAddress;

}

public void setFromAddress(String fromAddress) {

this.fromAddress = fromAddress;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getToAddress() {

return toAddress;

}

public void setToAddress(String toAddress) {

this.toAddress = toAddress;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getSubject() {

return subject;

}

public void setSubject(String subject) {

this.subject = subject;

}

public String getContent() {

return content;

}

public void setContent(String textContent) {

this.content = textContent;

}

}

#########################################################

第二個類:SimpleMailSender.java

#############################################################

package com.util.mail;

import java.util.Date;

import java.util.Properties;

import javax.mail.Address;

import javax.mail.BodyPart;

import javax.mail.Message;

import javax.mail.MessagingException;

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;

/**

* 簡單郵件(不帶附件的郵件)發送器

http://www.bt285.cn BT下載

*/

public class SimpleMailSender ?{

/**

* 以文本格式發送郵件

* @param mailInfo 待發送的郵件的信息

*/

public boolean sendTextMail(MailSenderInfo mailInfo) {

// 判斷是否需要身份認證

MyAuthenticator authenticator = null;

Properties pro = mailInfo.getProperties();

if (mailInfo.isValidate()) {

// 如果需要身份認證,則創建一個密碼驗證器

authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());

}

// 根據郵件會話屬性和密碼驗證器構造一個發送郵件的session

Session sendMailSession = Session.getDefaultInstance(pro,authenticator);

try {

// 根據session創建一個郵件消息

Message mailMessage = new MimeMessage(sendMailSession);

// 創建郵件發送者地址

Address from = new InternetAddress(mailInfo.getFromAddress());

// 設置郵件消息的發送者

mailMessage.setFrom(from);

// 創建郵件的接收者地址,并設置到郵件消息中

Address to = new InternetAddress(mailInfo.getToAddress());

mailMessage.setRecipient(Message.RecipientType.TO,to);

// 設置郵件消息的主題

mailMessage.setSubject(mailInfo.getSubject());

// 設置郵件消息發送的時間

mailMessage.setSentDate(new Date());

// 設置郵件消息的主要內容

String mailContent = mailInfo.getContent();

mailMessage.setText(mailContent);

// 發送郵件

Transport.send(mailMessage);

return true;

} catch (MessagingException ex) {

ex.printStackTrace();

}

return false;

}

/**

* 以HTML格式發送郵件

* @param mailInfo 待發送的郵件信息

*/

public static boolean sendHtmlMail(MailSenderInfo mailInfo){

// 判斷是否需要身份認證

MyAuthenticator authenticator = null;

Properties pro = mailInfo.getProperties();

//如果需要身份認證,則創建一個密碼驗證器

if (mailInfo.isValidate()) {

authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());

}

// 根據郵件會話屬性和密碼驗證器構造一個發送郵件的session

Session sendMailSession = Session.getDefaultInstance(pro,authenticator);

try {

// 根據session創建一個郵件消息

Message mailMessage = new MimeMessage(sendMailSession);

// 創建郵件發送者地址

Address from = new InternetAddress(mailInfo.getFromAddress());

// 設置郵件消息的發送者

mailMessage.setFrom(from);

// 創建郵件的接收者地址,并設置到郵件消息中

Address to = new InternetAddress(mailInfo.getToAddress());

// Message.RecipientType.TO屬性表示接收者的類型為TO

mailMessage.setRecipient(Message.RecipientType.TO,to);

// 設置郵件消息的主題

mailMessage.setSubject(mailInfo.getSubject());

// 設置郵件消息發送的時間

mailMessage.setSentDate(new Date());

// MiniMultipart類是一個容器類,包含MimeBodyPart類型的對象

Multipart mainPart = new MimeMultipart();

// 創建一個包含HTML內容的MimeBodyPart

BodyPart html = new MimeBodyPart();

// 設置HTML內容

html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");

mainPart.addBodyPart(html);

// 將MiniMultipart對象設置為郵件內容

mailMessage.setContent(mainPart);

// 發送郵件

Transport.send(mailMessage);

return true;

} catch (MessagingException ex) {

ex.printStackTrace();

}

return false;

}

}

#######################################################

第三個類:MyAuthenticator.java

########################################################

package com.util.mail;

import javax.mail.*;

public class MyAuthenticator extends Authenticator{

String userName=null;

String password=null;

public MyAuthenticator(){

}

public MyAuthenticator(String username, String password) {

this.userName = username;

this.password = password;

}

protected PasswordAuthentication getPasswordAuthentication(){

return new PasswordAuthentication(userName, password);

}

}

############################################################

下面給出使用上面三個類的代碼:

############################################################

public static void main(String[] args){

//這個類主要是設置郵件

MailSenderInfo mailInfo = new MailSenderInfo();

mailInfo.setMailServerHost("smtp.163.com");

mailInfo.setMailServerPort("25");

mailInfo.setValidate(true);

mailInfo.setUserName("han2000lei@163.com");

mailInfo.setPassword("**********");//您的郵箱密碼

mailInfo.setFromAddress("han2000lei@163.com");

mailInfo.setToAddress("han2000lei@163.com");

mailInfo.setSubject("設置郵箱標題 如http://www.guihua.org 中國桂花網");

mailInfo.setContent("設置郵箱內容 如http://www.guihua.org 中國桂花網 是中國最大桂花網站==");

//這個類主要來發送郵件

SimpleMailSender sms = new SimpleMailSender();

sms.sendTextMail(mailInfo);//發送文體格式

sms.sendHtmlMail(mailInfo);//發送html格式

}

##################################################################

最后,給出朋友們幾個注意的地方:

1、使用此代碼你可以完成你的javamail的郵件發送功能。三個類缺一不可。

2、這三個類我打包是用的com.util.mail包,如果不喜歡,你可以自己改,但三個類文件必須在同一個包中

3、不要使用你剛剛注冊過的郵箱在程序中發郵件,如果你的163郵箱是剛注冊不久,那你就不要使用“smtp.163.com”。因為你發不出去。剛注冊的郵箱是不會給你這種權限的,也就是你不能通過驗證。要使用你經常用的郵箱,而且時間比較長的。

4、另一個問題就是mailInfo.setMailServerHost("smtp.163.com");與mailInfo.setFromAddress("han2000lei@163.com");這兩句話。即如果你使用163smtp服務器,那么發送郵件地址就必須用163的郵箱,如果不的話,是不會發送成功的。

5、關于javamail驗證錯誤的問題,網上的解釋有很多,但我看見的只有一個。就是我的第三個類。你只要復制全了代碼,我想是不會有問題的。

Eclipse下如何導入jar包:http://blog.csdn.net/justinavril/article/details/2783182

1.右擊工程的根目錄,點擊屬性進入屬性。

2.在屬性頁面中選中Java Build Path,選中 庫 標簽,點擊Add External JARs。

3.找到需要添加的jar包,確定即可。

總結

以上是生活随笔為你收集整理的java邮件实例_java邮件小实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。