呼之欲出 WebMail 開發手記 (八) WebService
(對不住大家了,這幾天公司專案太忙,加上身體不適,有幾天沒有來更新了。)
我們需要做兩個 WebService,一個用來接收郵件,一個用來傳送郵件:
- Receiver.asmx
- Sender.asmx
然後在 WebService 中各新增一個方法 Start 用來啟動收發執行緒。因為我們需要實時獲取收發資訊,所以我們把物件儲存到 Session 中,這樣方便實時返回當前執行緒進行到什麼程式,有些什麼狀態等:
[WebMethod(EnableSession = true)]
public string[] Start() {
HttpContext context = HttpContext.Current;
MailThread mail = null;
object mailObj = context.Session[MailHelper.POP3Name];
if (mailObj != null) {// 是否已經存在
mail = (MailThread)mailObj;
}
else {// 建立新的執行緒
mail = new MailThread();
context.Session.Add(MailHelper.POP3Name, mail);
mail.ReceiveStart();
}
if (mail.Pop3State >= 2) {// 接收完就不要了
mail.ReceiveStop();
context.Session.Remove(MailHelper.POP3Name);
}
return new string[] { mail.Pop3State.ToString(), mail.Pop3Mail, mail.Pop3Message };
}
[WebMethod(EnableSession = true)]
public string[] Start() {
HttpContext context = HttpContext.Current;
MailThread mail = null;
object mailObj = context.Session[MailHelper.SMTPName];
if (mailObj != null) {// 是否存在
mail = (MailThread)mailObj;
}
else {// 建立新的執行緒
mail = new MailThread(isstart);
context.Session.Add(MailHelper.SMTPName, mail);
mail.SendStart();
}
if (mail.SmtpState >= 2) {// 傳送完就不要了
mail.SendStop();
context.Session.Remove(MailHelper.SMTPName);
}
return new string[] { mail.SmtpState.ToString(), mail.SmtpMail, mail.SmtpMessage };
}
好了,WebService 很簡單。我們再來看看怎麼呼叫:
首先向 Header.aspx 中新增 AJAX 控制元件 ScriptManager,然後新增兩個 Service 引用:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/Receiver.asmx" />
<asp:ServiceReference Path="~/Sender.asmx" />
Services>
asp:ScriptManager>
再新增兩個實時資訊欄:
<div id="POP3Div" style="display: none;">郵件接收資訊欄div>
<div id="SMTPDiv" style="display: none;">郵件傳送資訊欄div>
<div id="SMTPDiv" style="display: none;">郵件傳送資訊欄div>
剩下的就是如何呼叫 WebService 向這兩個資訊欄中填充資料:
<script type="text/javascript" language="javascript">
function receiveMail(){
Receiver.Start(onPop3Success, onPop3Error);
}
function onPop3Success(result){
var pd = $get("POP3Div");
if(result[0]=="1"){
pd.style.display = "block";
pd.innerHTML = result[1]+result[2];
}else{
pd.style.display = "none";
}
}
function sendMail(){
Sender.Start(onSmtpSuccess, onSmtpError);
}
function onSmtpSuccess(result){
var pd = $get("SMTPDiv");
if(result[0]=="1"){
pd.style.display = "block";
pd.innerHTML = result[1]+result[2];
}else{
pd.style.display = "none";
}
}
function onPop3Error(error){
var pd = $get("POP3Div");
pd.style.display = "block";
pd.innerHTML = error.get_message();
}
function onSmtpError(error){
var pd = $get("SMTPDiv");
pd.style.display = "block";
pd.innerHTML = error.get_message();
}
function startThread(){
receiveMail();
sendMail();
}
// 1秒鐘查一次,可以根據需求調整
window.setInterval("startThread();", 1*1000);
</script>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-609238/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 呼之欲出 WebMail 開發手記 (六) 郵件收取WebAI
- 呼之欲出 WebMail 開發手記 (七) 郵件傳送WebAI
- 呼之欲出 WebMail 開發手記 (一) 基本功能WebAI
- 呼之欲出 WebMail 開發手記 (五) 郵件操作類WebAI
- 呼之欲出 WebMail 開發手記 (四) 郵件收發準備WebAI
- 呼之欲出 WebMail 開發手記 (三) 使用者資訊存取WebAI
- 開發:隨筆記錄之 CXF 動態呼叫Webservice筆記Web
- WebService開發的層次Web
- MySpy開發手記 (轉)
- java webservice開發入門之一JavaWeb
- java webservice開發入門之二JavaWeb
- Android開發之WebService介紹AndroidWeb
- java開發webservice幾種方式小結JavaWeb
- [推薦]WebService開發知識介紹Web
- (八)列表頁開發
- WebService學習筆記Web筆記
- maven+CXF+Spring+tomcat 開發webserviceMavenSpringTomcatWeb
- 十九、.net core使用SoapCore開發webservice介面,以及使用HttpClientFactory動態訪問webservice介面WebHTTPclient
- 微信公眾號支付開發手記(node)
- 擁抱ES6——OSSJavaScriptSDK開發手記JavaScript
- Servlet/JSP 容器開發手記2 (轉)ServletJS
- 微信開發(八)自動回覆和多客服開發
- 阿里巴巴java開發手冊筆記阿里Java筆記
- 短視訊開發app,webservice自定義加入攔截器APPWeb
- FFmpeg開發筆記(八)Linux交叉編譯Android的FFmpeg庫筆記Linux編譯Android
- 有好的webmail系統嗎WebAI
- # JAVA RESTful WebService實戰筆記(一)JavaRESTWeb筆記
- 自動化測試系統開發手記(一)
- cocos2d-x 2.2 開發手記2
- 《PHP與MySQL動態網站開發》小編手記PHPMySql網站
- 關於jboss-3.0.8_tomcat-4.1.24開發webservice得問題TomcatWeb
- iOS混合開發庫(GICXMLLayout)八、熱更新iOSXML
- 阿里巴巴Android開發手冊V1.0.0隨手筆記阿里Android筆記
- 預設文件解析--手機web app開發筆記(二)WebAPP筆記
- 阿里巴巴Java開發手冊閱讀筆記阿里Java筆記
- Facebook iOS新版開發手記:兩倍速度的背後iOS
- 專案管理手記:迭代式開發進度控制(轉)專案管理
- 【原創】webservice xfire框架例項筆記Web框架筆記