从UITextfield发送电子邮件

时间:2009-07-29 14:53:45

标签: iphone email

我希望用户能够将字符串输入文本字段,按完成,并将数据通过电子邮件发送到我的收件箱,但我不知道如何执行此操作。有人可以描述我需要研究的基本步骤,我需要学习的东西,推荐教程,示例代码等。如果可能的话,我想避免打开邮件应用程序。

感谢。

3 个答案:

答案 0 :(得分:3)

http://developer.apple.com/iphone/library/documentation/MessageUI/Reference/MessageUI_Framework_Reference/MessageUI_Framework_Reference.pdf查看苹果文档中的UI消息框架,它们有MFMailComposeViewController等,我从未使用它们,它们提供用于编写​​电子邮件的UI,我不知道你是否可以在幕后发送电子邮件(也许是可能的),你必须仔细查看文档并弄明白。如果它没有为你做,你可以随时制作一个SMPT协议并自己发送电子邮件...(你应该能够在UI消息框架中找到一些有用的东西,虽然我认为)

答案 1 :(得分:2)

如果您希望电子邮件来自用户自己的个人帐户,则必须:

  1. 使用内置MFMailComposeViewController(设置邮件编辑页面)或
  2. 使用http://code.google.com/p/skpsmtpmessage/之类的SMTP客户端库。但是,在这种情况下,您必须从用户那里获取SMTP帐户信息(即用户ID,电子邮件地址,密码)。
  3. 如果您想要的只是文本框的正文,并且您不关心返回的电子邮件地址,那么您可以设置一个简单的邮件重发器Web服务(那里有大量的PHP / Ruby / Python代码)从脚本发送电子邮件)。然后在幕后,您的iPhone应用程序会向您的Web服务器发出HTTP请求,然后将其格式化为邮件消息并将其转发给您。

    这可能是用户最友好的,因为它需要用户提供最少的输入,但您可能希望设置安全措施(例如使用SSL和/或身份验证)来限制仅从您的应用访问Web服务URL

答案 2 :(得分:0)

这样的事情应该有效:

NSString *s = @"mailto:addressee@apple.com?subject=iPhone%20Question&body=Where%20is%20mine?";
NSURL *url = [[NSURL alloc] initWithString: s];
[[UIApplication sharedApplication] openURL: url];

我认为这是对的。 %20用于嵌入空间 - 如果您将实际值替换为上面硬编码的值,您将需要对URL中的空格和其他有问题的字符进行文本替换。我不是专家,也许其他人可以指向指南。

请注意,如果openURL调用成功,则退出应用程序,因此您不必担心清除上面的“url”等内容。

或者,上面引用的MFMailComposeViewController可能是正确的方法 - 我将调查它。