【问题标题】:SMTP use clarificationSMTP 使用说明
【发布时间】:2015-07-21 18:09:44
【问题描述】:

需要一些高层指导。

我正在建立一个网站。我希望能够针对各种情况发送电子邮件。

  • 用户注册时,发送确认邮件
  • 如果发生错误,请给我发送错误电子邮件
  • 当用户加入消息字符串并出现新帖子时,向字符串上的所有用户发送电子邮件
  • 发送群发电子邮件以获取每周更新

我可以使用免费的 SMTP 服务器,例如 Gmail 吗?

如果是这样,使用 Gmail 与使用付费服务(如 SendGrid)有什么区别?

使用 gmail SMTP 是否足以满足我的目的?

感谢您的任何澄清...

【问题讨论】:

  • 取决于 SMTP 卷和后端应用程序,您拥有什么类型的后端应用程序(WP、Joomla、自定义 PHP 或 asp.net)?

标签: email smtp gmail sendgrid


【解决方案1】:

我在 SendGrid 工作。

SendGrid 提供了一些开箱即用的东西,通过 gmail 需要一些额外的工作。您可以获得有关打开和链接点击等内容的分析,以及这些事件的设备和浏览器统计信息。我们提供白标签,可帮助您为您的域配置 SPF、DKIM 和 DMARC 记录,以便您可以从自己的域而不是 gmail.com 发送,并确保接收服务器会信任该邮件。还有退订管理。

gmail 也有一些限制,described here。 SendGrid 允许您每月发送 12,000 封电子邮件,免费帐户没有每日上限。因此,如果您认为您最终可能会超越 gmail,那么现在没有理由不从 SendGrid 开始。

此外,如果您打算以编程方式与您的电子邮件交互,那么有许多officially supported Sendgrid libraries 可以使集成变得容易。当您与 API 或我们基于 SMTP 的自定义 API 标头集成时,您可以使用模板、执行 A/B 测试,并为您的电子邮件分配独特的参数和类别,并利用许多让您将内容与你的代码。

如果您有任何其他问题,请告诉我。

【讨论】:

    【解决方案2】:

    人们选择 SendGrid 等服务的主要原因是正确配置您的 SMTP 设置会非常忙碌。我会说尝试使用 SMTP,如果本机 GMAIL 失败,请尝试通过 Outlook 进行(下载 GMAIL Outlook 插件)。如果你不能,那就选择 SendGrid,它非常易于使用。希望这会有所帮助:)

    【讨论】:

      【解决方案3】:

      您可以使用 Gmail 等 SMTP 服务器执行此操作。

      在您的情况下,您可以设置一个流程以在事件发生时发送电子邮件,如下所示(在 Python 中):

      import smtplib
      import time
      MYEMAIL = "enter your email"
      def GetSecurePassword(): ...
      
      def CheckNewUsersRegistered():
          ...
          return emails_messages_list
      
      def NewErrorOccurred():
          ...
          return MYEMAILs_messages_list
      
      def NewMessagePostedByAUser():
          ...
          return emails_messages_list
      
      def NewWeeklyMessageReadyForAUser():
          ...
          return emails_messages_list
      
      def Login():
          server = smtplib.SMTP('smtp.gmail.com', 587)
          server.starttls()
          server.login(MYEMAIL, GetSecurePassword())
          return server
      
      def SendEmailsMessages(emails_messages_list,server):
          for email,message in emails_messages_list:
              server.sendmail(MYEMAIL, email, message)
      
      def run():
          while True:
              time.sleep(600)
              server=Login()
      
              SendEmailsMessages(CheckNewUsersRegistered(),server)
              SendEmailsMessages(NewErrorOccurred(),server)
              ...
              server.quit()
      
      if __name__ == "__main__":
          run()
      

      如果您有免费的 Gmail 帐户,您可以每天发送 100 至 500 封邮件 (depending on how you are logged in)。您还可以为 GSuite which would give you up to 2000/day 每月向 Google 支付 10 美元。

      本土方法的问题是您必须重新发明冗余和故障安全模式 - 当您的流程阻塞时会发生什么?您如何将进程迁移到新服务器或添加额外用户?通过像 Sendgrid 这样的付费服务,他们将解决这些问题。我想它归结为 Sendgrid 提供的价格/价值比,与您需要的东西以及您在内部完成它的难易程度。如果真正擅长自动化邮件不是您业务的核心竞争力/差异化因素,那么 Sendgrid 可能会更物有所值。

      编辑:请记住,用省略号概括的代码是无论如何你都必须编写的代码。

      【讨论】:

        猜你喜欢
        • 2017-02-16
        • 2017-05-28
        • 2018-03-06
        • 2019-12-10
        • 2016-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多