java代碼實現(xiàn)郵箱功能 java制作郵箱登錄頁面

java實現(xiàn)發(fā)送郵件功能

要實現(xiàn)郵件發(fā)送功能需要導入包:mail.jar

網(wǎng)站建設、成都網(wǎng)站設計介紹好的網(wǎng)站是理念、設計和技術的結合。創(chuàng)新互聯(lián)擁有的網(wǎng)站設計理念、多方位的設計風格、經(jīng)驗豐富的設計團隊。提供PC端+手機端網(wǎng)站建設,用營銷思維進行網(wǎng)站設計、采用先進技術開源代碼、注重用戶體驗與SEO基礎,將技術與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺化效果。

/*

* Generated by MyEclipse Struts

* Template path: templates/java/JavaClass.vtl

*/

package org.demo.action;

import java.util.Properties;

import javax.mail.Message;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.demo.form.DemoForm;

public class DemoAction extends Action {

private static final String CONTENT_TYPE = "test/html;charset=GB2312";

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) {

DemoForm demoForm = (DemoForm) form;

System.out.println("標題是" + demoForm.getBiaoti());

System.out.println("內(nèi)容是" + demoForm.getNeirong());

try {

response.setContentType(CONTENT_TYPE);

String smtphost = "smtp.nj.headware.cn"; // 發(fā)送郵件服務器

String user = "q0000015369"; // 郵件服務器登錄用戶名

String password = "Queshuwen26"; // 郵件服務器登錄密碼

String from = "q0000015369@nj.headware.cn"; //

String to = "c0000016205@nj.headware.cn"; // 收件人郵件地址

String subject = demoForm.getBiaoti(); // 郵件標題

String body = demoForm.getNeirong(); // 郵件內(nèi)容

Properties props = new Properties();

props.put("mail.smtp.host", smtphost);

props.put("mail.smtp.auth", "true");

Session ssn = Session.getInstance(props, null);

MimeMessage message = new MimeMessage(ssn);

InternetAddress fromAddress = new InternetAddress(from);

message.setFrom(fromAddress);

InternetAddress toAddress = new InternetAddress(to);

message.addRecipient(Message.RecipientType.TO, toAddress);

message.setSubject(subject);

message.setText(body);

Transport transport = ssn.getTransport("smtp");

transport.connect(smtphost, user, password);

transport.sendMessage(message, message

.getRecipients(Message.RecipientType.TO));

// transport.send(message);

transport.close();

return mapping.findForward("succ");

} catch (Exception e) {

e.printStackTrace();

return mapping.findForward("fail");

}

}

}

Java收發(fā)郵件過程中具體的功能是怎么實現(xiàn)的

1.SMTP協(xié)議

用戶連上郵件服務器后,要想給它發(fā)送一封電子郵件,需要遵循一定的通迅規(guī)則,SMTP協(xié)議就是用于定義這種通訊規(guī)則的。

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

2.POP3協(xié)議

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

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

下圖用于演示兩帳戶相互發(fā)送郵件的過程

3.1JavaMail API按其功能劃分通??煞譃槿缦氯箢悾?/p>

創(chuàng)建和解析郵件內(nèi)容的API :Message類是創(chuàng)建和解析郵件的核心API,它的實例對象代表一封電子郵件。

3.2發(fā)送郵件的API:Transport類是發(fā)送郵件的核心API類,它的實例對象代表實現(xiàn)了某個郵件發(fā)送協(xié)議的郵件發(fā)送對象,例如SMTP協(xié)議。

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

3.3Session類

Session類用于定義整個應用程序所需的環(huán)境信息,以及收集客戶端與郵件服務器建立網(wǎng)絡連接的會話信息,如郵件服務器的主機名、端口號、采用的郵件發(fā)送和接收協(xié)議等。Session對象根據(jù)這些信息構建用于郵件收發(fā)的Transport和Store對象,以及為客戶端創(chuàng)建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");

//發(fā)送郵件的協(xié)議

prop.setProperty("mail.transport.protocol",?"smtp");

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

prop.setProperty("mail.smtp.auth",?"true");

//創(chuàng)建session

Session?session?=?Session.getInstance(prop);

session.setDebug(true);

//得到transport

Transport?ts?=?session.getTransport();

//連接郵件服務器

ts.connect("smtp.sina.com.cn",?"xxxx@sina.com",?"xxxxx");

//發(fā)送郵件

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可以解決中文正文的亂碼問題,內(nèi)嵌可下載的圖片

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;

}

}

如何使用Java發(fā)送qq郵件

方法:

1.前提準備工作:

首先,郵件的發(fā)送方要開啟POP3 和SMTP服務--即發(fā)送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");// 連接協(xié)議

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

//設置發(fā)件人郵箱地址

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

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

//設置郵件標題

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

//設置郵件內(nèi)容

message.setText("內(nèi)容為: 這是第一封java發(fā)送來的郵件。");

//得到郵差對象

Transport transport = session.getTransport();

//連接自己的郵箱賬戶

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

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

}

}

10.運行就會發(fā)出郵件了。。。。

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

注意事項

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

分享題目:java代碼實現(xiàn)郵箱功能 java制作郵箱登錄頁面
當前鏈接:http://muchs.cn/article10/dohhgdo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設軟件開發(fā)、網(wǎng)站制作、云服務器、服務器托管標簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)