C# 網頁sapx頁面調用用戶郵箱客戶端

 剛接手這個功能總覺得一臉懵逼。以前做的都直接拼接好字符串然後調用郵件接口直接發出其他人。這次的需求是拼接好字符串之後調用用戶客戶端讓發送郵件的人確認數據是否正確再發送出去。雖然聽起來很簡單,可是到小司機我手裏就變得超級難,一路艱辛還是記錄下來,如果看答案快點可直接讀到最後;

1.第一次百度的答案 System.Diagnostics.Process.Start()

 string sEmailMSG = "mailto:" +HttpUtility.UrlEncode( Emailto) + "?CC=" + HttpUtility.UrlEncode(EmailToCC) + "?subject=" +HttpUtility.UrlEncode( emailTitle) + 
                "&body=" +HttpUtility.UrlEncode( emailBody);

            
          System.Diagnostics.Process.Start(sEmailMSG);

在本地測試完成之後部署到服務器,之後完全失效這個方法。一點反映都沒有,當然你百度的話,很多就百度到這個方法,你也可能跟我一樣的入坑了。後來看了,System.Diagnostics.Process.Start()方法好像調用本地的程序。也就是服務器會自己調用服務器端的客戶端,所以到用戶那裏就失效了。如果您也跟我一樣用aspx的後臺調用客戶端,B/s的話把這個方法拋棄了吧。


2.在頁面上寫a標籤,用href來實現<a href=mailto:[email protected]>send email</a>

這個方法能在服務器上調起郵箱客戶端。到這裏感覺還是好幸福的,至少看到希望了。但是href鏈接的數據怎麼從後臺綁定到href裏呢,又腦子死路了,用<% Gethtml() >來在頁面上,我當初用href=<% Gethtml()>悲催這樣寫是誰教我的,想想都好笑。反正一句話部行


3.正確的綁定方式

string sEmailMSG = "mailto:" +HttpUtility.UrlEncode( Emailto) + "?CC=" + HttpUtility.UrlEncode(EmailToCC) + "?subject=" +HttpUtility.UrlEncode( emailTitle) + 
                "&body=" +HttpUtility.UrlEncode( emailBody);


            Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>window.open ('" + sEmailMSG + "')</script>");

好吧重點是其實不需要a標籤也能實現,直接用page.ClientScript.RegisterSartupScript(this.GetType(),"","<Script>window.open(sEmailMSG )"</scrpt>)就這樣直接彈出調用客戶端就好,很簡單對吧。







發佈了52 篇原創文章 · 獲贊 8 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章