代表用户

时间:2016-05-20 14:24:27

标签: email amazon-web-services smtp google-compute-engine

我如何使用Google Compute Engine(或像AWS这样的类似服务)代表用户通过其SMTP服务器发送电子邮件?

我有兴趣构建一个在线电子邮件客户端,允许用户输入他们的SMTP和POP服务器并发送/接收电子邮件,就像他们使用桌面客户​​端一样。 GCE blocks所有SMTP端口以防止滥用,并建议使用SendGrid之类的邮件服务。然而,在研究了数十种这样的服务之后,它们似乎都只使用自己的SMTP服务器或可能是预先清除的smtp服务器来支持交易电子邮件。我只想使用用户 SMTP服务器( ex smtp.mail.yahoo.com)发送电子邮件,就像他们使用桌面时一样客户端。

我意识到我可以托管自己的服务器,但我对维护基础设施不感兴趣。我想在云服务上托管所有内容。有什么方法可以解决Google对现有服务的限制吗?

2 个答案:

答案 0 :(得分:1)

我确信您知道,您必须让用户输入他们的SMTP服务器信息和帐户凭据。然后,您将使用该信息连接到其SMTP服务器。

默认情况下,AWS EC2实例在端口25上具有SMTP流量限制。要删除此限制,您需要填写并提交以下表单: https://aws-portal.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request

答案 1 :(得分:1)

如果您希望以GmailHotmailYahoo用户身份发送邮件,则可能需要拨打该服务的电话号码使服务器代表用户发送邮件的API。这有几个好处:

  1. 您需要获得用户授权(通常通过OAuth流程) 为了访问他们的邮件。这意味着用户不应该这样做 感到惊讶的是,你从他们的帐户发送邮件,他们会这样做 控制您的访问权。
  2. 邮件将被签名并来自相应的IP地址 遵守那些设立的各种垃圾邮件控制机制 公司。如果没有这个,你发送的邮件很可能会结束 收件人的位置。
  3. 通过使用API​​,服务应该能够保留一份副本 在用户的外发邮件文件夹中发送邮件。这将让用户 查看并搜索他们想要的原始邮件。
  4. 不幸的是,这也可能意味着您要发送的每个邮件服务都需要单独集成,并且您可能无法从较小的提供商处发送用户的电子邮件地址。

    请注意,App Engine mail API允许您以当前登录的用户身份发送邮件(登录时,用户具有与上述OAuth流程类似的同意屏幕)。