iphone
  • email
  • forms
  • 2010-04-04 21 views 0 likes 
    0

    我讓應用的用戶從應用內發送電子郵件以共享myserver上的一些內容。要做到這一點,我需要包含一個兩位數據的按鈕,我想使用POST來保持它隱藏。我已經決定增加在電子郵件中使用POST和兩個隱藏字段,而HTML表單,像這樣:通過POST在iPhone應用內電子郵件中發送隱藏字段

    NSString *buttonCode = [NSString stringWithFormat:@"<form method='post' action='http://www.example.com/iphone/nifty.php'> 
    <input type='hidden' name='dataOne' value='%@'> 
    <input type='hidden' name='dataTwo' value='%@'> 
    <input type='submit'value='Submit'></form>",dataOne, dataTwo]; 
    NSString *emailBody = [NSString stringWithFormat: 
         @"<b>%@ - %@</b>\n\n<HR WIDTH=200 SIZE=2 COLOR=#755f0f ALIGN=CENTER>\n Here is a email:<br><br>%@", 
         dateString, 
         timeString, 
         buttonCode]; 
    [picker setMessageBody:emailBody isHTML:YES]; 
    

    我通過看郵件的原始來源證實,形式構建正確和我已將其複製並粘貼到網頁中,並且可以正常工作。

    所以這裏是問題所在。當我點擊收到的電子郵件中的按鈕(使用蘋果的郵件客戶端)時,dataOne和dataTwo變量不會傳遞給我的服務器。

    有沒有更好的方法來做到這一點,或者是我的郵件客戶端的問題?

    ======更新==========

    我想這可能與在iPhone添加到電子郵件行:

    --apple郵件-1--23863057 Content-Type:text/html; 字符集= UTF-8 內容傳送編碼:7位

    當我在上述沒有接收到的變量如所提到的在服務器上的HTML測試添加ENCTYPE =「text/html的」來的形式。

    有沒有辦法從iPhone改變它並以另一種方式發送它?

    回答

    0

    enctype只是告訴郵件客戶端電子郵件包含HTML,問題是您的郵件客戶端正在刪除字段。

    +0

    當我將電子郵件中的代碼(使用原始源代碼)複製並粘貼到網頁中時,代碼工作正常。也許這只是不可能使用MFMailComposeViewController使用POST發送表單。 – 2010-04-04 05:09:35

    +1

    你說這個表格顯示在收到的電子郵件中。將表單放在網站上的測試表單上,並將其放在電子郵件上會給你帶來完全不同的結果,因爲你將其放在網站上的步驟很少。如果您發佈收到的電子郵件的原始來源,這將真的有幫助。 – 2010-04-04 15:35:12

    +0

    感謝亨利, 這裏是完整的電子郵件PasteBin http://pastebin.com/1mxJjuGa – 2010-04-05 13:57:41

    相關問題