如何使用/绕过 Gmail 的 SMTP 出站发送限制?

2024-02-09

我正在使用我的 Gmail Apps for Domain 帐户在 Rails 应用程序中发送电子邮件以获取标准自动电子邮件(用户注册、忘记密码、通知管理员新评论等),但我担心每天设置的 500 封电子邮件限制由谷歌。

谷歌建议克服该限制的一种方法是使用多个用户帐户。

因此,我设置了 10 个额外的 gmail 用户帐户(noreply1、noreply2、noreply3 等) - 我想跟踪这些帐户中的任何一个在 24 小时内发送了 500 封电子邮件,并相应地使用空闲帐户。

如何动态设置:user_name值在ActionMailer::Base.smtp_settings?

这是我当前的设置 - 注意:每次都会从“noreply1”发送,即使我明确设置 :user_name 和 :from 到“noreply2”:

--- development.rb --- 
    ActionMailer::Base.delivery_method = :smtp
    ActionMailer::Base.smtp_settings = {
        :address => "smtp.gmail.com",
        :port => "587",
        :domain => "mydomain.com",   
        :authentication => :plain,
            :user_name => "[email protected] /cdn-cgi/l/email-protection",
        :password => "password"
    }

--- account.rb --- (MODEL, called via a callback)
after_create :send_welcome_email
...
def send_welcome_email
  #ActionMailer::Base.smtp_settings[:user_name] = '[email protected] /cdn-cgi/l/email-protection'
  ActionMailer::Base.smtp_settings.merge!({:user_name => "[email protected] /cdn-cgi/l/email-protection"})  
  SubscriptionNotifier.deliver_welcome(self)   
end

--- subscription_notifier.rb --- (MODEL) 
class SubscriptionNotifier < ActionMailer::Base
  def welcome(account)    
    @sent_on = Time.now
    @subject = "Welcome to the App"
    @recipients = account.email
    @from = "[email protected] /cdn-cgi/l/email-protection" 
    @body = { :account => account }
  end
end

您还可以在服务器上设置 MTA 并使用它来发送邮件。

这就是我们所做的。

您必须将服务器的 IP 添加为域的 SPF 记录中用于发送电子邮件的有效 IP,以避免被标记为垃圾邮件。

这样做的另一个好处是,如果您这样做,您可以将电子邮件的发件人地址设置为您的用户之一,而使用 GMail 则无法做到这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用/绕过 Gmail 的 SMTP 出站发送限制? 的相关文章

随机推荐

  • 将网格 3D 数据插值到更精细的比例

    我有一个概率曲面的 NetCDF 文件 它是一个 30x30 的网格 纬度 经度间隔为 0 25 度 并在 z 维度中描述概率表面 我可以轻松地将其导入 NetCDF 查看器 Panoply 然后轻而易举地 选中一个框 将原始数据插值 平滑
  • 在同一环境中使用同一编译器编译同一程序时,未指定和未定义的行为是否需要保持一致?

    让我们假设我的程序包含 C 标准规定为未指定行为的特定构造 这基本上意味着实现必须做一些合理的事情 但允许不记录它 但是 每次编译具有未指定行为的特定构造时 是否需要实现产生相同的行为 或者是否允许在不同的编译中产生不同的行为 未定义的行为
  • 如何显示多个权限请求的权限理由?

    我正在使用 Android API 25 需要在应用程序中发出权限请求 有大量关于如何发出请求以及如何显示基本原理的代码示例 这个链接在这里 https github com googlesamples android RuntimePer
  • 项目是否必须创建为精灵套件,还是可以简单地添加框架?

    我正在退一步学习我正在制作的 2D 游戏的精灵套件 而不是使用 UIKit 在我读过的所有教程中 他们将新项目创建为 Sprite Kit 而不是单一视图 只是想知道我是否需要重新创建我的游戏 或者我是否可以简单地将精灵套件框架添加到我现有
  • 根据条件在多对多表中执行左连接

    一般案例 当您想要向关系的外部添加条件时 如何在多对多关系中执行左连接 具体案例 我们正在处理两个表 team and pool 还有一个team pool表充当它们之间的多对多联结表 另外 一个pool has a stage id co
  • 错误:函数返回局部变量的地址

    我是 C 初学者 正在自学 我正在创建以下函数 char foo int x if x lt 0 char a 1000 char b blah x x 1 char c foo x strcpy a b strcat a c return
  • 如何用docker文件覆盖nginx默认配置?

    我有一个使用 React router 的应用程序 我为它创建了一个 docker 镜像 我正在使用 nginx 服务器并且它可以工作 但是 刷新页面会出现 nginx 404 错误 我知道我需要覆盖 nginx 配置文件才能使其工作 但不
  • 如何在 C++ 正则表达式中使用 Unicode 范围

    我必须在 C 的正则表达式中使用 unicode 范围 基本上我需要的是有一个正则表达式来接受所有有效的 unicode 字符 我只是尝试使用测试表达式并面临一些问题 std regex reg u0080 uDB7Fa z0 9 问题是与
  • Django DDP 帮助

    对于这个问题我很抱歉我还不是 django 和meteorjs 的专家 我正在尝试使用此 django ddp 技术 但我有点陷入示例使用说明中的 启动 Django DDP 服务 https github com commoncode d
  • 未加权图的最短节点序列

    我想知道是否有一种算法可以通过从头节点到尾节点的图找到最短的节点序列 该图从头节点分支出来 并且是任意复杂的 并在尾节点处收敛 节点之间的所有连接都是未加权的 我正在考虑解决这个问题 从头节点和尾节点采取探索性步骤 直到图形两端的节点接触等
  • 使用 LESS mixin 多次设置变量但得到错误的结果

    在前面 我今天开始少了 因此 欢迎提出如何做得更好的建议 我有以下 less 文件 test target context em target context 1em custom field position relative test
  • Java 将文本字符串添加到 Rectangle2D

    我有一些矩形 给定一个声明并定义为的矩形 Rectangle2D rec new Rectangle2D Double 50 50 50 50 是否可以在该矩形内添加一串文本 谢谢 不要尝试将字符串放入预定义的矩形中 而是考虑使用FontM
  • 如何在同一部分文本上的 TextView 文本上设置多个跨度?

    假设我有下一个文本 你好堆栈溢出 我希望将第二个词设置为两者相对尺寸跨度 http developer android com reference android text style RelativeSizeSpan html 设置相对字
  • 在Android中如何实现这样的UI呢?

    在我的一个应用程序中 我需要为线性布局创建一个边框 如下所示 我不想有图像并将其设置为背景 因为那时我需要为不同的设备创建各种尺寸的图像 如果我使用线性布局创建布局并使用绝对定位放置文本视图 则它在不同设备中可能看起来不符合预期 那么实现这
  • Django复杂查询从groupby和having子句中获取数据

    我想在具有 CNT Status 的 MyUser 表上执行 group by 子句 原始查询如下所示 SELECT user id from user table GROUP BY user id HAVING COUNT status
  • 尝试运行 Docker 导致退出代码 127

    我正在尝试在使用 docker 的 Windows 中运行某个应用程序 由于该应用程序是 shell 脚本 因此我使用 cygwin 终端 作为 docker 的新手 我对其工作原理没有明确的想法 使用 boot2docker 我在 Win
  • C++ 中的“auto 运算符”是什么?

    Clang https en wikipedia org wiki Clang和 Visual Studio 编译器 但不是GCC https en wikipedia org wiki GNU Compiler Collection 允许
  • 应用模板上选择属性的 xslt 处理

    我有一个如下所示的 XSLT 并将该 xslt 应用于输入 xml 粘贴在下面 它工作正常 除了需要澄清的一件事 这是输入 xml
  • 这是 C# 4 中的协方差错误吗?

    在下面的代码中 我希望能够隐式转换elements to baseElements因为TBase可以隐式转换为IBase public interface IBase public interface IDerived IBase publ
  • 如何使用/绕过 Gmail 的 SMTP 出站发送限制?

    我正在使用我的 Gmail Apps for Domain 帐户在 Rails 应用程序中发送电子邮件以获取标准自动电子邮件 用户注册 忘记密码 通知管理员新评论等 但我担心每天设置的 500 封电子邮件限制由谷歌 谷歌建议克服该限制的一种