我讓應用的用戶從應用內發送電子郵件以共享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改變它並以另一種方式發送它?
當我將電子郵件中的代碼(使用原始源代碼)複製並粘貼到網頁中時,代碼工作正常。也許這只是不可能使用MFMailComposeViewController使用POST發送表單。 – 2010-04-04 05:09:35
你說這個表格顯示在收到的電子郵件中。將表單放在網站上的測試表單上,並將其放在電子郵件上會給你帶來完全不同的結果,因爲你將其放在網站上的步驟很少。如果您發佈收到的電子郵件的原始來源,這將真的有幫助。 – 2010-04-04 15:35:12
感謝亨利, 這裏是完整的電子郵件PasteBin http://pastebin.com/1mxJjuGa – 2010-04-05 13:57:41