我能在iPhone应用程序中编程发送电子邮件吗?

9
我需要能够在iPhone应用程序中以编程方式发送预格式化的电子邮件或SMS文本消息。这可能吗?我已经查看了苹果的 MFMailComposeViewController 类,但它“提供一个标准界面来管理编辑和发送电子邮件消息”,而 MFMessageComposeViewController 类也有其自己的“用于撰写SMS文本消息的标准系统接口”。这些允许您向用户呈现界面,在其中填写所有数据,然后明确地按下发送按钮。
我不能使用此常规功能。
我需要能够发送一条消息,而不向用户呈现任何界面。我知道这听起来很邪恶,但实际上它是为商业应用程序而设计的,当外出用户执行特定操作时,需要与中央办公室的用户组通信。
有没有人找到了解决方案?

3
请参考此答案,了解如何在iPhone应用程序中发送邮件:How can I send mail from an iPhone application,答案链接为:https://dev59.com/gXVC5IYBdhLWcg3wYQEp/449245#449245。 - Matthew Flaschen
8个回答

12
经过大量调查,我发现在 iPhone 应用程序中以编程方式(即没有用户干预)发送电子邮件不能使用任何苹果框架实现。

5

建立一个Web服务,您可以使用HTTP请求进行发布。如果您只发布到一个地址,这非常有效,尽管您可能希望让用户输入他们的返回邮件地址。

否则,只有标准对话框可用(这取决于使用设备上设置的任何帐户)。


3

以下是一些可在 OS X 上使用的 SMTP API。它们可能也可以在 iOS 上使用。

  • Pantomime
  • MailCore
  • EdMessage

1

只能通过Web界面进行操作,无法隐藏界面,这是根据苹果开发者指南和文档规定的。


1

0

我没有iOS的经验,但我有足够的电子邮件协议经验来说,如果客户端应用程序没有访问服务器,我会感到非常惊讶。很可能,电子邮件将使用SMTP协议发送,因此必须使用SMTP服务器发送。选择如何连接到该服务器是您唯一的选择。您可以连接到服务器端脚本(例如php)以生成和发送电子邮件,或者您可以创建套接字并直接连接到SMTP服务器上的25号端口,并仍然可以从客户端应用程序中生成电子邮件。

请查看:


这个问题并没有说明不能使用服务器。 - Matthew Flaschen
我需要能够在iPhone应用程序内以编程方式发送预格式化电子邮件。这可以实现吗?也许我理解得太字面了,但是听起来他想让应用程序实际发送消息。 - Aaron
正确,这是在iOS4上运行的iPhone应用程序,它需要发送消息。这不能涉及设置服务器或套接字编程到另一台机器。然而,手机已经配置好发送电子邮件和短信文本消息,因此ISP已经设置了标准电子邮件服务器。问题是如何在不让用户输入任何内容的情况下发送消息?可以预填电子邮件的收件人、主题和正文,但如何发送呢?……通过编程实现。 - jcpennypincher
@jc,你需要使用服务器,但不需要设置自己的服务器。一旦你知道SMTP主机名、用户名和密码,你就可以使用任何SMTP库,包括我上面提供的那个。低级套接字代码将由库处理。 - Matthew Flaschen
感谢您的回复,马修。我将尝试使用位于此处http://code.google.com/p/skpsmtpmessage的skpsmtpmessage库,并发布我的结果。它看起来正是我所需要的。 - jcpennypincher

0

这是标准操作不可行的。如果您无法使用标准对话框,则需要使用SMTP。

SMS也是一样,使用对话框或使用基于Web的短信服务(其中大多数需要付费)。


0

你可以始终使用SMTP协议进行低级telnet到已知的邮件服务器以发送邮件。我不知道苹果是否会拒绝该应用程序,但SMTP非常简单。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接