當前位置:名人名言大全網 - 端午節短信 - Java短消息集成

Java短消息集成

1.發送電子郵件

首先,我們應該構建JavaMail的開發環境,並在JDK配置JavaMail的相關類和包。在構建JavaMail開發環境時,需要mail.jar和activation.jar。這兩個文件可以從SUN的官方網站下載。

JavaMail支持STMP、POP3和IMAP,封裝了郵件對象、發送、認證和接收等電子郵件功能。

當發送各種類型的郵件時,它主要適用於以下類別:

1)會話類。如果用戶想要發送電子郵件,他們首先需要創建壹個Session類的對象,並使用該對象創建壹個mail對象並指定郵件服務器身份驗證的客戶端屬性。它的類級別是javax.mail.Session

2)internet address類。郵件發送的地址類,類層次結構是javax . mail . internet . internet address,它繼承自抽象類javax.mail.Address

3)模擬消息類。郵件消息類,它的類層次結構是javax . mail . internet . mime message,它繼承自抽象類javax.mail.Message

4)運輸類。郵件發送類,其類層次結構為javax.mail.Transport

5)驗證器類。Authorizer類,JavaMail使用Authenticator類通過用戶名和密碼訪問那些受保護的資源,其中“資源”是郵件服務器。它的類層次結構是javax.mail.Authenticator

6)商店類。用於從郵件服務器接收郵件,其類層次結構為javax.mail.Store

7)文件夾類。郵件文件夾類,其類層次結構為javax.mail.Folder

實施過程:

& lt% @ page import =“Java . io . *“% & gt;

& lt% @ page import =“Java . util . *“% & gt;

& lt%@個頁面導入=“javax . mail . *“% & gt;

& lt%@個頁面導入=“javax . mail . internet . *“% & gt;

& lt% @ page import =“javax . activation . *“% & gt;

& lt%

嘗試{

request . setcharacter encoding(“GB 2312“);

string from = request . getparameter(“jname“);

string to = request . getparameter(“sname“);

string subject = request . getparameter(“title“);

string message text = request . getparameter(“message“);

string password = request . getparameter(“password“);

string S = request . getparameter(“jname“);

int n = s . index of(‘@‘);

int m = s . length();

string server = s . substring(n+1,m);

//建立郵件會話

Properties pro =新屬性();

pro . put(“mail . smtp . host“,“SMTP。+服務器);

pro . put(“mail . stmp . auth“,“true“);

session sess = session . getinstance(pro);

sess . set debug(true);

MimeMessage消息=新的mime message(mess);//創建新的消息對象

//設置發送方

internet address from _ mail = new internet address(from);

message . set from(from _ mail);

//設置收件人

internet address to _ mail = new internet address(to);

Message . set recipient(Message。收件人類型。收件人,收件人_郵件);

message.setSubject(主題);//設置主題

message . settext(message text);//設置內容

message . setsentdate(new Date());//設置發送時間

//發送郵件

message . save changes();//保存電子郵件信息

transport transport = sess . get transport(“SMTP“);

transport . connect(“SMTP+服務器、發件人、密碼);

transport . sendmessage(message,message . getallrecipients());

transport . close();

Out.print(“郵件發送成功“);

}catch(異常e ){

Out.print(“發送電子郵件失敗,可能是因為

out . println(e . getmessage());

}

% & gt

2.以HTML格式發送電子郵件

MimeMultipart對象用於存儲HTML文件的具體內容,在設置內容時應設置對象的格式。

MimeMultipart類的類層次結構是javax . mail . internet . mime Multipart .存儲電子郵件內容的通用容器是Multipart抽象類,它定義了添加、刪除和獲取電子郵件不同內容的方法。因為Multipart是壹個抽象類,所以必須使用壹個具體的子類。JavaMail API提供javax . mail . internet . mime multipart類來使用MimeMessage對象。

語法:

multipart mul = new mime multipart();

描述:使用MimeMultipart對象時常用的方法是addBodyPart(),它可以將BodyPart對象添加到電子郵件的內容中。消息可以有許多部分,壹個正文部分可以代表壹個部分。

MimeBodyPart類的類層次結構是javax . mail . internet . mime BodyPart . mime body part是特定於MimeMessage的body part的子類。MimeBodyPart對象表示MimeMessage對象的壹部分內容,每個MimeBodyPart被認為由兩部分組成:MIME類型和與該類型匹配的內容。

語法:

body part MDP = new mime body part();//創建壹個新的BodyPart對象來存儲信件的內容。

string message text =“Hello World!“;

//將MIME類型定義為text/html,並設置MimeBodyPart的內容。

MDP . set content(message text,“text/html“);

實施過程:

& lt% @ page import =“Java . io . *“% & gt;

& lt% @ page import =“Java . util . *“% & gt;

& lt%@個頁面導入=“javax . mail . *“% & gt;

& lt%@個頁面導入=“javax . mail . internet . *“% & gt;

& lt% @ page import =“javax . activation . *“% & gt;

& lt%

嘗試{

request . setcharacter encoding(“GB 2312“);

string from _ mail = request . getparameter(“sname“);

string to _ mail = request . getparameter(“rname“);

string subject = request . getparameter(“title“);

string message text = request . getparameter(“message“);

string password = request . getparameter(“password“);

string S = request . getparameter(“sname“);

int n = s . index of(‘@‘);

int m = s . length();

string server = s . substring(n+1,m);

Properties prop = new Properties();

prop . put(“mail . smtp . host“,“SMTP。“+服務器);

prop . put(“mail . SMTP . auth“,“true“);

session sess = session . getinstance(prop);

sess . set debug(true);

MimeMessage消息=新的mime message(sess);

//為消息對象設置收件人、發件人、主題和發送時間。

internet address from = new internet address(from _ mail);

message.setFrom(來自);

InternetAddress to =新的internet address(to _ mail);

Message . set recipient(Message。收件人類型。收件人,收件人);

message.setSubject(主題);

message . setsentdate(new Date());

Multipart mul = new Multipart();//創建新的MimeMultipart對象以存儲多個BodyPart對象。

body part MDP = new mime body part();//創建壹個新的BodyPart對象來存儲信件的內容。

MDP . set content(message text,“text/html;charset = GB 2312“);

mul . addbodypart(MDP);//將包含字母內容的BodyPart添加到MimeMultipart對象。

message . save changes();

transport transport = sess . get transport(“SMTP“);

transport . connect(“SMTP+服務器,發件人郵件,密碼);

transport . sendmessage(message,message . getallrecipients());

transport . close();

Out.println(“郵件發送成功!“);

}catch(異常e ){

Out.print(“發送電子郵件失敗,可能是因為

out . println(e . getmessage());

}

% & gt

3.發送帶附件的郵件

通常,在設計帶有附件的郵件發送程序時,可以遵循以下步驟:

1)要發送帶有附件的電子郵件,需要建立電子郵件的各個電子郵件正文部分,並在第壹部分(即電子郵件的內容文本)後添加帶有DataHandler的附件。

2)如果文件作為附件發送,則應該建立FileDataSource類型的對象作為附件數據源;如果從URL讀取數據並將其作為附件發送,則應該建立壹個URLDataSource類型的對象作為附件數據源。

3)傳入數據源(FileDataSource或URLDataSource)對象作為DataHandler類的構造函數的參數,從而建立壹個DataHandler對象作為數據源的DataHandler。

4)將此DataHandler設置為郵件正文的DataHandler,從而完成郵件正文與附件的關聯。下面的工作是使用BodyPart的setFileName()方法將附件名稱設置為原始文件名。

5)將兩個電子郵件正文放入多部分中,將電子郵件內容設置為該容器的多部分,並發送電子郵件。

實施過程:

& lt% @ page import =“Java . io . *“% & gt;

& lt% @ page import =“Java . util . *“% & gt;

& lt%@個頁面導入=“javax . mail . *“% & gt;

& lt%@個頁面導入=“javax . mail . internet . *“% & gt;

& lt% @ page import =“javax . activation . *“% & gt;

& lt% @ page import =“Java . net . *“% & gt;

& lt%

嘗試{

request . setcharacter encoding(“GB 2312“);

string from _ mail = request . getparameter(“sname“);

sting to _ mail = request . getparameter(“rname“);

string from _ PSD = request . getparameter(“password“);

string title = request . getparameter(“title“);

string content = request . getparameter(“content“);

string path = request . getparameter(“attachment“);

string S = request . getparameter(“sname“);

int n = s . index of(‘@‘);

int m = s . length();

string server = s . substring(n+1,m);

Properties prop = new Properties();

prop . put(“mail . smtp . host“,“SMTP。“+服務器);

prop . put(“mail . SMTP . auth“,“true“);

session sess = session . getinstance(prop);

session . set debug(true);

MimeMessage消息=新的mime message(sess);

//為消息對象設置收件人、發件人和主題。

internet address from = new internet address(from _ mail);

message.setFrom(來自);

InternetAddress to =新的internet address(to _ mail);

Message . set recipient(Message。收件人類型。收件人,收件人);

message.setSubject(標題);

multipart mul = new mime multipart();//創建新的MimeMultipart對象以存儲多個BodyPart對象。

body part MDP = new mime body part();//創建壹個新的BodyPart對象來存儲信件的內容。

MDP . set content(content,“text/html;charset = GB 2312“);

mul . addbodypart(MDP);//將包含字母內容的BodyPart添加到MimeMultipart對象。

//設置信件的附件

MDP = new mime body part();//創建用於存儲附件的新BodyPart。

data handler handler = new data handler(“JavaMail附件測試“,“text/plain;charset = GB 2312“);//創建新的DataHandler對象並設置其內容、格式和編碼方法。

MDP . set filename(“mrsoft“);//可能與源文件名不壹致。

mdp.setDataHandler(處理程序);

mul . addbodypart(MDP);

message . set content(mul);//將mul作為消息對象的內容。

message . save changes();

transport transport = sess . get transport(“SMTP“);

transport . connect(“SMTP+server,from_mail,from _ PSD);

transport . sendmessage(message,message . getallrecipients());

transport . close();

Out.println(“附件發送成功!“);

}catch(例外情況){

Out.print(“郵件發送失敗,可能是因為:

out . println(ex . getmessage());

}

% & gt

4.群發郵件

將收件人地址設置為tomail+i的形式,並使用for循環將郵件發送到這些地址,以達到群發郵件的目的。

使用Address類設置電子郵件信息的收件人和發件人信息。創建電子郵件地址類後,通過message的setFrom()方法設置電子郵件的發件人。代碼如下:

message . set from(from _ mail);

在設置收件人地址時,使用setRecipient()方法設置收件人地址。代碼如下:

message.setRecipient(類型,地址);

參數類型是收件人類型。您可以使用以下三個常量來區分收件人的類型:

1)消息。收件人類型。待發送。

2)郵件。收件人類型。抄送。

3)message . recipient type . bcc-秘密發送。

註意:在日常使用中,我們經常使用兩種郵件發送形式:抄送和密件抄送。抄送和密件抄送都同時向多個郵箱發送電子郵件,但是它們

它們之間有壹定的區別。不同的是,秘密投遞隱藏了其他抄送人的地址,只允許收件人看到自己的地址,這可以起到保密和防止垃圾郵件的作用。

實施過程:

& lt% @ page import =“Java . io . *“% & gt;

& lt% @ page import =“Java . util . *“% & gt;

& lt%@個頁面導入=“javax . mail . *“% & gt;

& lt%@個頁面導入=“javax . mail . internet . *“% & gt;

& lt% @ page import =“javax . activation . *“% & gt;

& lt%

嘗試{

int I = 1;

for(I = 1;我& lt4;i++){

request . setcharacter encoding(“GB 2312“);

string from = request . getparameter(“from _ mail“);

string to = request . getparameter(“to mail“+I);

string subject = request . getparameter(“subject“);

string message text = request . getparameter(“message“);

string password = request . getparameter(“password“);

string S = request . getparameter(“from _ mail“);

int n = s . index of(‘@‘);

int m = s . length();

string server = s . substring(n+1,m);

//建立郵件會話

Properties pro =新屬性();

pro . put(“mail . smtp . host“,“SMTP。+服務器);

pro . put(“mail . SMTP . auth“,“true“);

session sess = session . getinstance(pro);

sess . set debug(true);

MimeMessage消息=新的mime message(sess);//創建新的消息對象

internet address from _ mail = new internet address(from);//設置發送方

message . set from(from _ mail);

//設置收件人

internet address to = new internet address(to);

Message . set recipient(Message。收件人類型。收件人,收件人_郵件);

message.setSubject(主題);//設置主題

message . settext(message text);//設置內容

message . setsentdate(new Date());//設置發送時間

message . save changes();//保存電子郵件信息

transport transport = sess . get transport(“SMTP“);

transport . connect(“SMTP+服務器、發件人、密碼);

transport . sendmessage(message,message . getallrecipients());

transport . close();

if(I = = 3 ){

Out.print(“電子郵件發送成功“);

}

}

}catch(異常e ){

Out.print(“發送電子郵件失敗,可能是因為

out . println(e . getmessage());

}

% & gt

5.Spring使用WebService發送短信。

通過編程發送短信是壹件復雜的事情。目前壹般的解決方案是通過電腦與手機的連接,使用手機編程語言編寫短信程序。這種方法不僅需要時間和精力,還需要相應的硬件設施和必須了解手機編程的相關知識。您可以通過Web服務技術遠程訪問現有的短信發送服務器,並通過調用服務器發送短信。

技術要點:

使用現有資源:可以發送短消息的Web服務遠程服務。該Web服務由新浪網站提供,允許用戶直接調用遠程服務發送消息。該服務的服務名稱為SMSWS,服務端口為SMSWebServiceSoapPort。在這個遠程服務中,提供了壹種發送短消息的方法sendXml()。該方法定義如下:

公共字符串sendXml(字符串載體、字符串id、字符串密碼、字符串toMobile、字符串message、字符串msgtype)

功能:根據用戶給定的參數向目標用戶的手機發送短信。

參數描述:

sendXml()方法中的六個參數都是字符串類型,sendXml()方法的返回值也是字符串類型。以下是sendXml()方法中六個參數的詳細描述。

1)運營商:運營商名稱。該參數的具體使用沒有具體要求,即可以隨意輸入,輸入的字符串不會顯示在對方手機中。

2)id:在新浪註冊的手機號碼。使用新浪服務發送短信時,您需要在新浪網站註冊手機。

3)密碼:手機註冊成功後Sina.com發回的密碼。

4)toMobile:接收短信的對方手機號碼。

5)消息:要發送的短消息的內容。

6)msg type:發送短消息的類型。由於不是彩信,請輸入文本。

調用sendXml()方法需要在Spring中配置壹個JaxRpcPortProxyFactoryBean的實例,然後定義包含該方法的接口,Spring將自動獲取遠程服務的接口。

實施過程:

application context AC = new classpathmlaplicationcontext(“application context . XML“);

SMSWebService sendSms =(SMSWebService)AC . get bean(“hello world service“);

string carrier =“lzwsky“;

string id = userid . gettext();

string password = password field . gettext();

string toMobile = tomobilefield . gettext();

string message = message field . gettext();

string msg type =“Text“;

sendSms.sendXml(運營商、id、密碼、toMobile、消息、msg type);