我让应用的用户从应用内发送电子邮件以共享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