ruby-on-rails - 验证电子邮件未通过Heroku/Mailgun发送

标签 ruby-on-rails email heroku mailgun

我在Heroku上有Rails应用程序。它有一个自定义域,我尝试设置通过Mailgun发送的电子邮件。我已经通过Heroku安装了Mailgun作为附加组件,并且已经完成Mailgun给出的“验证”我的自定义域的步骤。如果我运行Mailgun的“立即检查DNS记录”,一切将恢复为绿色,并且状态为“事件”。我什至可以使用他们提供的curl调用从我的自定义域发送邮件。但是,当我尝试使用ActionMailer从Rails应用发送电子邮件时,我得到:Net::SMTPFatalError (554 Sandbox subdomains are for test purposes only. Please add your own domain or add the address to authorized recipients in domain settings.
为什么认为我使用的是“沙盒子域”?这是environments/production.rb中的内容:

  # Mailgun
  ActionMailer::Base.smtp_settings = {                                    
    port: ENV['MAILGUN_SMTP_PORT'],                                       
    address: ENV['MAILGUN_SMTP_SERVER'],                                  
    user_name: ENV['MAILGUN_SMTP_LOGIN'],
    password: ENV['MAILGUN_SMTP_PASSWORD'],                               
    domain: 'my-custom-domain.com',                                               
    authentication: :plain,                                               
  } 
  ActionMailer::Base.delivery_method = :smtp                              
  # Devise recoverable      
  config.action_mailer.default_url_options = { host: 'my-custom-domain.com' } 

为了进行开发,我使用的是Gmail,因此我知道它正在读取正确的配置文件。并且所有环境变量都已正确设置。发件人的设置也正确,我在日志中看到它(do-not-reply@my-custom-domain.com)我错过了什么?即使处于事件状态,是否仍有可能传播?

谢谢!

最佳答案

因此问题出在当我验证我的自定义域时,它在我的Heroku/Mailgun帐户下创建了第二个域。我的Heroku env vars中仍然有来自xxx.mailgun.org(沙盒)域的凭据。一旦我用自定义域中的凭据替换了它们,一切就正常了。 (自从Heroku设置了第一套环境变量以来,我愚蠢地假设新的环境变量将被自动放入。)

谢谢您的帮助。

关于ruby-on-rails - 验证电子邮件未通过Heroku/Mailgun发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37534567/

相关文章:

jquery - 查找集中表的左边距值

ruby-on-rails - Stubbing 葡萄 helper

Linux 发送邮件 - 命令行

ruby-on-rails - Heroku 可靠吗?

python - 将纯 python 部署到 heroku

mysql - rails 大量数据在单次插入 activerecord 中发出

ruby-on-rails - 在 Rails 4 中输出特殊字符

ios - 邮件应用程序和 Gmail 应用程序的通用链接问题

android - 如何获取 Android 设备的主电子邮件地址

ruby - Dashing 不能在 Heroku 上运行