利用java發送和接收郵件(Java 郵件發送)

本文目錄一覽:

java 怎麼實現發送郵件例子

第一個類:MailSenderInfo.java

[java] view plain copy

package com.util.mail;

/**

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

*author by wangfun

小說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

[java] view plain copy

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;

/**

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

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

[java] view plain copy

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);

}

}

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

[java] view plain copy

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(“設置郵箱標題 如 中國桂花網”);

mailInfo.setContent(“設置郵箱內容 如 中國桂花網 是中國最大桂花網站==”);

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

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驗證錯誤的問題,網上的解釋有很多,但我看見的只有一個。就是我的第三個類。你只要複製全了代碼,我想是不會有問題的。

Java收發郵件過程中具體的功能是怎麼實現的

1.SMTP協議

用戶連上郵件服務器後,要想給它發送一封電子郵件,需要遵循一定的通迅規則,SMTP協議就是用於定義這種通訊規則的。

因而,通常我們也把處理用戶smtp請求(郵件發送請求)的郵件服務器稱之為SMTP服務器。(25)

2.POP3協議

同樣,用戶若想從郵件服務器管理的電子郵箱中接收一封電子郵件的話,他連上郵件服務器後,也需要遵循一定的通迅格式,POP3協議用於定義這種通訊格式。

因而,通常我們也把處理用戶pop3請求(郵件接收請求)的郵件服務器稱之為POP3服務器。(110)

下圖用於演示兩帳戶相互發送郵件的過程

3.1JavaMail API按其功能劃分通常可分為如下三大類:

創建和解析郵件內容的API :Message類是創建和解析郵件的核心API,它的實例對象代表一封電子郵件。

3.2發送郵件的API:Transport類是發送郵件的核心API類,它的實例對象代表實現了某個郵件發送協議的郵件發送對象,例如SMTP協議。

接收郵件的API:Store類是接收郵件的核心API類,它的實例對象代表實現了某個郵件接收協議的郵件接收對象,例如POP3協議。

3.3Session類

Session類用於定義整個應用程序所需的環境信息,以及收集客戶端與郵件服務器建立網絡連接的會話信息,如郵件服務器的主機名、端口號、採用的郵件發送和接收協議等。Session對象根據這些信息構建用於郵件收發的Transport和Store對象,以及為客戶端創建Message對象時提供信息支持。

4.郵件組織結構相關的API

MimeMessage類表示整封郵件。

MimeBodyPart類表示郵件的一個MIME消息。

MimeMultipart類表示一個由多個MIME消息組合成的組合MIME消息。

5.具體的例子程序

package cn.edu.dlmu.send;

import java.util.Properties;

import javax.activation.DataHandler;

import javax.activation.FileDataSource;

import javax.mail.Message;

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;

public class SendMail {

public static void main(String[] args) throws Exception {

Properties prop = new Properties();

//連接的郵件服務器的主機名

prop.setProperty(“mail.smtp.host”, “smtp.sina.com.cn”);

//發送郵件的協議

prop.setProperty(“mail.transport.protocol”, “smtp”);

//是否向郵件服務器提交認證

prop.setProperty(“mail.smtp.auth”, “true”);

//創建session

Session session = Session.getInstance(prop);

session.setDebug(true);

//得到transport

Transport ts = session.getTransport();

//連接郵件服務器

ts.connect(“smtp.sina.com.cn”, “xxxx@sina.com”, “xxxxx”);

//發送郵件

MimeMessage message = createMessage(session);

ts.sendMessage(message, message.getAllRecipients());

ts.close();

}

public static MimeMessage createMessage(Session session) throws Exception {

MimeMessage message = new MimeMessage(session);

//設置郵件的基本信息

message.setFrom(new InternetAddress(“xxxx@sina.com”));

message.setRecipient(Message.RecipientType.TO, new InternetAddress(“1219070362@qq.com”));

message.setSubject(“test”);

//正文

MimeBodyPart text = new MimeBodyPart();

//設置charaset可以解決中文正文的亂碼問題,內嵌可下載的圖片

text.setContent(“你好xxx,img src=’c:/dog.jpg’ /測試成功!br/img src=’cid:aaa.jpg’ /”, “text/html;charset=gbk”);

//圖片1

MimeBodyPart image = new MimeBodyPart();

image.setDataHandler(new DataHandler(new FileDataSource(“src/88.jpg”)));

image.setContentID(“aaa.jpg”);

//附件

MimeBodyPart attach = new MimeBodyPart();

DataHandler dh = new DataHandler(new FileDataSource(“src/javamail架包.jar”));

attach.setDataHandler(dh);

//解決文件中文亂碼問題

attach.setFileName(MimeUtility.encodeText(dh.getName()));

//描述正文和圖片的關係

MimeMultipart mp = new MimeMultipart();

mp.addBodyPart(text);

mp.addBodyPart(image);

mp.setSubType(“related”);

//描述正文和附件

MimeMultipart mp2 = new MimeMultipart();

mp2.addBodyPart(attach);

//將正文封裝為一個body

MimeBodyPart content = new MimeBodyPart();

content.setContent(mp);

mp2.addBodyPart(content);

mp2.setSubType(“mixed”);

message.setContent(mp2);

message.saveChanges();

return message;

}

}

怎麼樣使用JavaMail發送和接收郵件

public class MailTest {

//發送的郵箱 內部代碼只適用qq郵箱

private static final String USER = “xxxxx@qq.com”;

//授權密碼 通過QQ郵箱設置-賬戶-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務-開啟POP3/SMTP服務獲取

private static final String PWD = “xxxxx”;

private String[] to;

private String[] cc;//抄送

private String[] bcc;//密送

private String[] fileList;//附件

private String subject;//主題

private String content;//內容,可以用html語言寫

public void sendMessage() throws Exception {

// 配置發送郵件的環境屬性

final Properties props = new Properties();

//下面兩段代碼是設置ssl和端口,不設置發送不出去。

props.setProperty(“mail.smtp.socketFactory.class”, “javax.net.ssl.SSLSocketFactory”);

//props.setProperty(“mail.smtp.port”, “465”);

props.setProperty(“mail.smtp.socketFactory.port”, “465”);

// 表示SMTP發送郵件,需要進行身份驗證

props.setProperty(“mail.transport.protocol”, “smtp”);// 設置傳輸協議

props.put(“mail.smtp.auth”, “true”);

props.put(“mail.smtp.host”, “smtp.qq.com”);//QQ郵箱的服務器 如果是企業郵箱或者其他郵箱得更換該服務器地址

// 發件人的賬號

props.put(“mail.user”, USER);

// 訪問SMTP服務時需要提供的密碼

props.put(“mail.password”, PWD);

// 構建授權信息,用於進行SMTP進行身份驗證

Authenticator authenticator = new Authenticator() {

@Override

protected PasswordAuthentication getPasswordAuthentication() {

// 用戶名、密碼

String userName = props.getProperty(“mail.user”);

String password = props.getProperty(“mail.password”);

return new PasswordAuthentication(userName, password);

}

};

// 使用環境屬性和授權信息,創建郵件會話

Session mailSession = Session.getInstance(props, authenticator);

// 創建郵件消息

MimeMessage message = new MimeMessage(mailSession);

BodyPart messageBodyPart = new MimeBodyPart();

Multipart multipart = new MimeMultipart();

// 設置發件人

InternetAddress form = new InternetAddress(

props.getProperty(“mail.user”));

message.setFrom(form);

//發送

if (to != null) {

String toList = getMailList(to);

InternetAddress[] iaToList = new InternetAddress().parse(toList);

message.setRecipients(RecipientType.TO, iaToList); // 收件人

}

//抄送

if (cc != null) {

String toListcc = getMailList(cc);

InternetAddress[] iaToListcc = new InternetAddress().parse(toListcc);

message.setRecipients(RecipientType.CC, iaToListcc); // 抄送人

}

//密送

if (bcc != null) {

String toListbcc = getMailList(bcc);

InternetAddress[] iaToListbcc = new InternetAddress().parse(toListbcc);

message.setRecipients(RecipientType.BCC, iaToListbcc); // 密送人

}

message.setSentDate(new Date()); // 發送日期 該日期可以隨意寫,你可以寫上昨天的日期(效果很特別,親測,有興趣可以試試),或者抽象出來形成一個參數。

message.setSubject(subject); // 主題

message.setText(content); // 內容

//顯示以html格式的文本內容

messageBodyPart.setContent(content,”text/html;charset=utf-8″);

multipart.addBodyPart(messageBodyPart);

//保存多個附件

if(fileList!=null){

addTach(fileList, multipart);

}

message.setContent(multipart);

// 發送郵件

Transport.send(message);

}

public void setTo(String[] to) {

this.to = to;

}

public void setCc(String[] cc) {

this.cc = cc;

}

public void setBcc(String[] bcc) {

this.bcc = bcc;

}

public void setSubject(String subject) {

this.subject = subject;

}

public void setContent(String content) {

this.content = content;

}

public void setFileList(String[] fileList) {

this.fileList = fileList;

}

private String getMailList(String[] mailArray) {

StringBuffer toList = new StringBuffer();

int length = mailArray.length;

if (mailArray != null length 2) {

toList.append(mailArray[0]);

} else {

for (int i = 0; i length; i++) {

toList.append(mailArray[i]);

if (i != (length – 1)) {

toList.append(“,”);

}

}

}

return toList.toString();

}

//添加多個附件

public void addTach(String fileList[], Multipart multipart) throws Exception {

for (int index = 0; index fileList.length; index++) {

MimeBodyPart mailArchieve = new MimeBodyPart();

FileDataSource fds = new FileDataSource(fileList[index]);

mailArchieve.setDataHandler(new DataHandler(fds));

mailArchieve.setFileName(MimeUtility.encodeText(fds.getName(),”UTF-8″,”B”));

multipart.addBodyPart(mailArchieve);

}

}

//以下是演示demo

public static void main(String args[]) {

MailTest mail = new MailTest();

mail.setSubject(“java郵件”);

mail.setContent(“你好 這是第一個java 程序發送郵件”);

//收件人 可以發給其他郵箱(163等) 下同

mail.setTo(new String[] {“xxxxx@qq.com”});

//抄送

// mail.setCc(new String[] {“xxxxx@qq.com”,”xxxxx@qq.com”});

//密送

//mail.setBcc(new String[] {“xxxxx@qq.com”,”xxxxx@qq.com”});

//發送附件列表 可以寫絕對路徑 也可以寫相對路徑(起點是項目根目錄)

// mail.setFileList(new String[] {“D:\\aa.txt”});

//發送郵件

try {

mail.sendMessage();

System.out.println(“發送郵件成功!”);

} catch (Exception e) {

System.out.println(“發送郵件失敗!”);

e.printStackTrace();

}

}

}

如何使用Java發送qq郵件

方法:

1.前提準備工作:

首先,郵件的發送方要開啟POP3 和SMTP服務–即發送qq郵件的賬號要開啟POP3 和SMTP服務

2.開啟方法:

登陸qq郵箱

3.點擊 設置

4.點擊—-賬戶

5.找到:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務 —點擊開啟

6.送短信 —–點擊確定

7.稍等一會,很得到一個授權碼! –注意:這個一定要記住,一會用到

8.點擊保存修改 —OK 完成

9.java 測試代碼:

package cn.cupcat.test;

import java.util.Properties;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMessage.RecipientType;

public class SendmailUtil {

public static void main(String[] args) throws AddressException, MessagingException {

Properties properties = new Properties();

properties.put(“mail.transport.protocol”, “smtp”);// 連接協議

properties.put(“mail.smtp.host”, “smtp.qq.com”);// 主機名

properties.put(“mail.smtp.port”, 465);// 端口號

properties.put(“mail.smtp.auth”, “true”);

properties.put(“mail.smtp.ssl.enable”, “true”);//設置是否使用ssl安全連接 —一般都使用

properties.put(“mail.debug”, “true”);//設置是否顯示debug信息 true 會在控制台顯示相關信息

//得到回話對象

Session session = Session.getInstance(properties);

// 獲取郵件對象

Message message = new MimeMessage(session);

//設置發件人郵箱地址

message.setFrom(new InternetAddress(“123456789@qq.com”));

//設置收件人地址 message.setRecipients( RecipientType.TO, new InternetAddress[] { new InternetAddress(“987654321@qq.com”) });

//設置郵件標題

message.setSubject(“這是第一封Java郵件”);

//設置郵件內容

message.setText(“內容為: 這是第一封java發送來的郵件。”);

//得到郵差對象

Transport transport = session.getTransport();

//連接自己的郵箱賬戶

transport.connect(“123456789@qq.com”, “vvctybgbvvophjcj”);//密碼為剛才得到的授權碼

//發送郵件 transport.sendMessage(message, message.getAllRecipients());

}

}

10.運行就會發出郵件了。。。。

下面是我收到郵件的截圖,當然我把源碼中的郵件地址都是修改了,不是真實的,你們測試的時候,可以修改能你們自己的郵箱。最後,祝你也能成功,如果有什麼問題,可以一起討論!

注意事項

得到的授權碼一定要保存好,程序中要使用

java中如何實現公司郵箱發送郵件配置

Java中可以通過Javamail API實現公司郵箱郵件發送配置,Java mail是利用現有的郵箱賬戶發送郵件的工具,具體步驟如如下:

1、通過JavamailAPI設置發送者郵箱用戶名及密碼

2、通過JavamailAPI設置郵件主題、郵件內容、附件及郵件發送時間

3、通過JavamailAPI設置發送者郵箱地址及接收者郵箱地址,接收者地址可以是多個及抄送

4、郵件的需基本元素都設置完畢後,即可通過Javamail API的發送接口執行發送操作。

用java寫收發郵件的程序,求助,在線

界面自己寫一下就可以了,把相關的參數傳進去就可以了。 這個是我以前寫的。用的javamail。 有main方法,測試一下自己的郵件,應該沒問題的。希望可以幫到你。注意導入你需要的javamail.jar的包 ————————————————————– package com.fourpane.mail; import java.util.Properties; import javax.mail.Address; import javax.mail.Flags; import javax.mail.Folder; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.NoSuchProviderException; import javax.mail.Session; import javax.mail.Store; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class TestMail { public static void main(String[] args) { //TestMail.sendMail(); //TestMail.receiveMail(); TestMail.deleteMail(); } /** * send mail */ public static void sendMail() { String host = “smtp.sina.com”;//郵件服務器 String from = “xingui5624@sina.com”;//發件人地址 String to = “ilovenumen@vip.sina.com”;//接受地址(必須支持pop3協議) String userName = “xingui5624”;//發件人郵件名稱 String pwd = “******”;//發件人郵件密碼 Properties props = new Properties(); props.put(“mail.smtp.host”, host); props.put(“mail.smtp.auth”, “true”); Session session = Session.getDefaultInstance(props); session.setDebug(true); MimeMessage msg = new MimeMessage(session); try { msg.setFrom(new InternetAddress(from)); msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));//發送 msg.setSubject(“我的測試………..”);//郵件主題 msg.setText(“測試內容。。。。。。。”);//郵件內容 msg.saveChanges(); Transport transport = session.getTransport(“smtp”); transport.connect(host, userName, pwd);//郵件服務器驗證 transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO)); System.out.println(“send ok………………………”); } catch (AddressException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } } /** * receive mail */ public static void receiveMail() { String host = “pop3.sina.com”; String userName = “xingui5624”; String passWord = “******”; Properties props = new Properties(); Session session = Session.getDefaultInstance(props); session.setDebug(true); try { System.out.println(“receive………………………….”); Store store = session.getStore(“pop3”); store.connect(host, userName,passWord);//驗證 Folder folder = store.getFolder(“INBOX”);//取得收件文件夾 folder.open(Folder.READ_WRITE); Message msg[] = folder.getMessages(); System.out.println(“郵件個數:” + msg.length); for(int i=0; imsg.length; i++) { Message message = msg[i]; Address address[] = message.getFrom(); StringBuffer from = new StringBuffer(); /** * 此for循環是我項目測試用的 */ for(int j=0; jaddress.length; j++) { if (j 0) from.append(“;”); from.append(address[j].toString()); } System.out.println(message.getMessageNumber()); System.out.println(“來自:” + from.toString()); System.out.println(“大小:” + message.getSize()); System.out.println(“主題:” + message.getSubject()); System.out.println(“時間::” + message.getSentDate()); System.out.println(“===================================================”); } folder.close(true);//設置關閉 store.close(); System.out.println(“receive over……………………….”); } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } } /** * delete mail */ public static void deleteMail() { String host = “pop3.sina.com”; String userName = “xingui5624”; String passWord = “******”; Properties props = new Properties(); //Properties props = System.getProperties();這種方法創建 Porperties 同上 Session session = Session.getDefaultInstance(props); session.setDebug(true); try { System.out.println(“begin delete ………..”); Store store = session.getStore(“pop3”); store.connect(host, userName, passWord);//驗證郵箱 Folder folder = store.getFolder(“INBOX”); folder.open(Folder.READ_WRITE);//設置我讀寫方式打開 int countOfAll = folder.getMessageCount();//取得郵件個數 int unReadCount = folder.getUnreadMessageCount();//已讀個數 int newOfCount = folder.getNewMessageCount();//未讀個數 System.out.println(“總個數:” +countOfAll); System.out.println(“已讀個數:” +unReadCount); System.out.println(“未讀個數:” +newOfCount); for(int i=1; i=countOfAll; i++) { Message message = folder.getMessage(i); message.setFlag(Flags.Flag.DELETED, true);//設置已刪除狀態為true if(message.isSet(Flags.Flag.DELETED)) System.out.println(“已經刪除第”+i+”郵件。。。。。。。。。”); } folder.close(true); store.close(); System.out.println(“delete ok……………………………”); } catch (NoSuchProviderException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } } /** * reply mail */ public static void replyMail() { //test } } 注意:此實現要求郵箱都支持pop3和smtp協議。現在老的網易郵箱都支持(2006年以前註冊的),所以的sina的 qq的都可以,雅虎的部分支持,具體的可以在網上搜下把。 ============================================================================== 還有一種辦法,也是我以前用到的。 其實最簡單的發郵件方式是用Apache的Common組件中的Email組件,封裝得很不錯。 特簡單。首先從Sun的網站上下載JavaMail框架實現,最新的版本是1.4.1。然後是JavaBeans Activation Framework,最新版本1.1.1,JavaMail需要這個框架。不過如果JDK是1.6的話就不用下了。1.6已經包括了JavaBeans Activation Framework。 最後從 下載最新的Common Email,版本1.1。 首先在Eclipse中建立一個新的Java工程,然後把JavaMail和Common Email解壓縮,在工程中添加解壓縮出來的所有Jar的引用。 代碼: package org.fourpane.mail; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; public class Mail { public static void main(String[] args) { //SimpleEmail email = new SimpleEmail(); HtmlEmail email = new HtmlEmail(); email.setHostName(“smtp.163.com”);//郵件服務器 email.setAuthentication(“xingui5624”, “******”);//smtp認證的用戶名和密碼 try { email.addTo(“xingui5624@163.com”);//收信者 email.setFrom(“xingui5624@126.com”, “******”);//發信者 email.setSubject(“xingui5624的測試郵件”);//標題 email.setCharset(“UTF-8”);//編碼格式 email.setMsg(“這是一封xingui5624的測試郵件”);//內容 email.send();//發送 System.out.println(“send ok……….”); } catch (EmailException e) { e.printStackTrace(); } } } 【如果發送不成功,可能是你的jar包問題,javamail 的jar可能和jdk1.5以上的j2ee的jar衝突。還有就是可能你的郵箱不支持pop3和smtp協議。】

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/247367.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:23
下一篇 2024-12-12 13:23

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論