【问题标题】:sender email is being overridden by smtp settings user_name发件人电子邮件被 smtp 设置 user_name 覆盖
【发布时间】:2013-11-30 00:34:46
【问题描述】:

我正在编写一个 ruby​​ 脚本来使用“邮件”gem 发送电子邮件。

以及我本地机器上的 smtp 设置:

mailer_options:
    address: smtp.gmail.com
    port: 465
    domain: gmail.com
    user_name: example@gmail.com
    password: example_password
    authentication: :login
    enable_starttls_auto: true
    ssl: true

我正在尝试发送这样的内容:-----

Mail.deliver do

  to  'receiver@gmail.com'
  from    'sender@gmail.com'
  subject 'Test Mail'

  text_part do
    body 'Hello World!!!!!'
  end

end

邮件已成功发送,但当我打开电子邮件时,我看到发件人电子邮件 ID 为 example@gmail.com 而不是 sender@gmail.com,为什么会这样,我无法弄清楚。

感谢您的任何评论和回答。

【问题讨论】:

  • 我认为这不是 ruby​​ 问题,而是 gmail 问题。我认为他们会覆盖邮件发件人并添加其他标题(代表或类似),除非您指定该 gmail 帐户能够代表所需帐户发送。
  • 这个article应该回答你的问题

标签: ruby-on-rails ruby email ruby-on-rails-3.2 rubygems


【解决方案1】:

这通常由您的 SMTP 服务器完成,并且超出您的控制范围。如果 Google 不适合您,您可以尝试使用不同的 SMTP 提供商,例如 Sendgrid

【讨论】:

    【解决方案2】:

    谷歌不允许发件人电子邮件屏蔽。这是由 GMAIL 的服务器完成的。不是你的rails代码!!。它始终使用您使用的 gmail 帐户的电子邮件地址作为“from_email”。 您最好的选择可能是“Mandrill”(每月免费发送 12000 封电子邮件)。它们允许以您想要的方式发送电子邮件。

    【讨论】:

      【解决方案3】:

      以上正确答案,不是您的代码,而是执行此操作的 Gmail SMTP 服务器。我为 SendGrid 工作,如果您想将其更改为使用 SendGrid(或任何其他提供者),那么您可以很容易地做到这一点。我们的免费计划每天可以发送 400 封电子邮件,非常适合本地开发。

      您的代码将更改如下:

      mailer_options:
        address: smtp.sendgrid.net
        port: 587
        domain: yourdomain.com
        username: your_username
        password: your_password
        authentication: plain
        enable_starttls_auto: true
      

      您无需在此阶段设置 SSL。从这里您可以使用您原来的Mail.deliver 方法。

      您会发现您现在可以从sender@yourdomain.com 地址或您在from 属性中指定的任何地址发送。

      the SendGrid documentation 中有更多 Ruby 和 SendGrid 详细信息。

      【讨论】:

        【解决方案4】:

        请在下面设置发件人默认名称而不是“sender@gmail.com”:

        class UserMailer < ActionMailer::Base
          default from: 'sender@gmail.com'
        
          def welcome_email(user)
            @user = user
            @url  = 'http://example.com/login'
            mail(to: @user.email, subject: 'Welcome to My Awesome Site')
          end
        end
        

        【讨论】:

          猜你喜欢
          • 2016-03-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-30
          • 2021-08-09
          • 2011-07-24
          • 1970-01-01
          相关资源
          最近更新 更多