当前位置: 首页 > 知识库问答 >
问题:

代表用户从GCE或AWS发送电子邮件

冀嘉木
2023-03-14

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

我感兴趣的是建立一个在线电子邮件客户端,它允许用户进入他们的SMTP和POP服务器并发送/接收电子邮件,就像他们使用桌面客户端一样。GCE会屏蔽所有SMTP端口以防止滥用,并建议改用SendGrid之类的邮件服务。然而,在研究了几十种此类服务之后,它们似乎都只支持使用自己的SMTP服务器,或者可能是预先清除的SMTP服务器的事务性电子邮件。我只想使用用户的SMTP服务器(比如SMTP.mail.yahoo.com)发送电子邮件,就像他们使用桌面客户端一样。

我意识到我可以托管自己的服务器,但我对维护基础设施不感兴趣。我想把所有东西都放在云服务上。我有没有办法绕过谷歌对现有服务的限制?

共有2个答案

申屠恺
2023-03-14

如果你想以Gmail、Hotmail或Yahoo用户的身份发送邮件,你可能需要调用服务的API,让服务器代表用户发送邮件。这有几个好处:

  1. 为了访问用户的邮件,您需要获得用户的授权(通常通过OAuth流)。这意味着用户不应该对你从他们的帐户发送邮件感到惊讶,他们会对你的访问进行一些控制
  2. 邮件将经过签名,并来自适当的IP地址,以符合这些公司建立的各种垃圾邮件控制机制。如果没有这一点,你发送的邮件很可能最终会进入收件人的比特桶
  3. 通过使用API,服务应该能够在用户的传出邮件文件夹中保留已发送邮件的副本。这将允许用户查看并搜索发送的原始消息

不幸的是,这也可能意味着您想要发送的每个邮件服务都需要单独的集成,并且您可能无法从较小的提供商发送作为用户的电子邮件地址。

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

师建德
2023-03-14

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

默认情况下,AWS EC2实例在端口25上有SMTP通信速率限制。要取消此限制,您需要填写并提交以下表格:https://aws-portal.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request

 类似资料:
  • 我目前正在我的google open sheets脚本中使用此函数。。。 MailApp。sendEmail(电子邮件地址、电子邮件地址、主题、正文); 问题是我无法控制发件人的电子邮件地址。发件人电子邮件设置在哪里?我可以控制回复电子邮件地址,但这并不能真正解决我的问题。 有什么想法吗?谢谢

  • 我们已将电子邮件服务从Mandrill更改为Amazon SES。我们将它与SMTP一起使用。 在Mandrill中,我们可以访问一些详细信息,例如: 邮件的原始内容 交货日期 是收件人查看的邮件 是否点击了邮件中的链接 但是在

  • 我有一个自动缩放的Fargate容器的配置。当在公共子网或NAT配置中使用SES简单电子邮件服务时,电子邮件会正确发送。当容器移动到具有SESendpoint接口的专用子网时,电子邮件将不再发送。下面两个选项带有连接超时消息: 对于Java邮件,代码为https://docs.aws.amazon.com/ses/latest/DeveloperGuide/examples-send-using-

  • 试图使用AWS简单电子邮件服务(SES)从apache airflow发送电子邮件,但返回的错误并不能帮助我解决问题。我认为这是SES中的一个配置问题,但我不确定要更改什么。 一般信息: 新的SES实例,已验证的电子邮件 气流1.10。10在Ubuntu 18.04(本地笔记本电脑)上运行 在一个单独的AWS帐户上,EC2实例也存在同样的情况 使用python操作符运行1 DAG,效果良好 发送电

  • 问题内容: 我正在尝试从PHP发送简单的HTML电子邮件。下面的代码仅导致GMail中的空白电子邮件。它还有一个名为“ noname”的空附件,这根本不是我想要的;尽管那可能只是它无法正常工作的症状。 我使用的代码是: 问题答案: 原来关键是编码类型。代替: 我需要使用: 它可能取决于您如何在自己的文本编辑器中保存PHP文件的细节。我没有研究它,但是PHP中的 iconv 函数可能也给我带来了一些

  • 我做了一个AWS Cognito用户池,没有电子邮件或电话属性(只有用户名和密码),MFA关闭了。然而,当新用户注册时,他们无法登录,直到他们的帐户得到确认。当然,这是不可能的,因为没有电子邮件或电话发送校验码。 我如何不需要用户确认,或者在注册时自动确认用户? 下面是Cognito用户池中相关选项卡的一些屏幕截图: