程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> mono中發送郵件並保存本次收件人的地址

mono中發送郵件並保存本次收件人的地址

編輯:C#入門知識

在ios端mono開發中,發送郵件可以選擇調用ios原生email程序。有兩種方式實現這種功能,一是程序跳轉到ipad中email程序,另外一種是將發送郵件的界面在自己應用裡彈出。

首先第一種方式的代碼:

 sendEmail = 

這種方式會直接打開ipad本地email程序,但這種方式有個缺點是無法傳送附件,並且會離開當前應用。

第二種方式,是可以發送附件並且可以在本應用中進行,mono中已經有封裝好的類MFMailComposeViewController去調用。

如果你ipad未設置郵箱賬戶,或者你的郵箱賬戶在設置裡未顯示激活狀態,則直接彈出此窗體會報錯。所以在調用代碼的時候,要先判斷MFMailComposeViewController.CanSendMail是否為true,如果為false的話,可以通過用第一種方式把設置郵箱賬戶的界面彈出來。在發送的時候,通過讀取保存在xml中的收件人信息,設置本次收件人的地址,這樣用戶就不需要每次都填寫收件人了。具體代碼如下:

 
         
         
         
          SendEmail( subject, 
             (!= =  MailComposeDelegate(); 
                  mf.SetSubject(subject);
 獲取上次發送郵件後保存在xml中的收件人
                  XmlDocument xmlDoct =  xmlpath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal),  (xmlDoct != = xmlDoct.SelectSingleNode( (xmlNodeContinue !=  strReceiver =)); 
;, ); 
                    設置附件=, subject + 
                
                  .PresentModalViewController(mf, 
                   sendEmail = 

這時候點擊發送或者取消,將會觸發郵件完成事件,在完成的時候,通過遞歸遍歷MFMailComposeViewController 中的控件(均繼承自UIView),找到收件人的UITextField,保存收件人的地址到xml。

遞歸遍歷代碼:

          strReceiver = 
             (view 
                     ((view  UITextField).Text.Contains(= (view  (view.Subviews.GetCount() >  (UIView subView 

              

保存收件人並響應完成發送具體事件的操作實現代碼如下:

              
                 (result ==
                     (!=  xmlpath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal),  (xmlDoct != = xmlDoct.SelectSingleNode( (xmlNodeContinue != = message =  flag = = = =  += = = =  (!
                    controller.DismissModalViewControllerAnimated(

另外在mono中如果想讀取和修改xml,不能講xml文件放在程序目錄文件夾裡面,要把它copy到系統個人文件夾下面,應該是蘋果權限控制的比較死的原因。具體操作代碼如下:每次程序啟動的時候會執行檢測文件是否存在,不存在則拷貝到personal文件夾下面。

 SystemSetPath=System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal),(!

本次xml的結構如下:

<?xml version= encoding= ?>
<Configuration>
    <MailReceiver></MailReceiver>
</Configuration>

另外,附件(html格式)發送到qq郵箱,預覽時會亂碼!在大神(博客地址)的幫助下,解決了這個問題!解決方案如下:

喜歡這篇文章就推薦下吧!您的支持是我繼續的最大動力!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved