我正在尝试从我的rails应用程序通过sendgrid发送邮件。我先前已经设置了sendgrid。我能够通过heroku在开发和生产中发送和接收邮件。一切都工作了一天。几天后我回来了,没有任何效果。
没有错误。在开发中,它表示邮件已发送,但电子邮件不发送,生成相同。
这是我的设置:
development.rb
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
production.rb
config.action_mailer.default_url_options = { host: 'herokuapp.com' }
Rails.application.routes.default_url_options[:host] = 'herokuapp.com'
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = false
config.action_mailer.default :charset => "utf-8"
为setup_mail.rb
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
address: 'smtp.sendgrid.net',
port: '587',
:authentication => :plain,
user_name: 'user',
password: 'pass',
domain: 'herokuapp.com',
enable_starttls_auto: true
}
我已经尝试将我的传递重置为sendgrid并删除然后重新添加它然后我遇到错误说"用户被禁止"我无法重新添加它。
我也尝试过切换到邮戳,但邮件从未收到但是已发送。
答案 0 :(得分:1)
如果他们收到您的电子邮件请求,您应该检查Sendgrid。
在“电子邮件活动”中搜索电子邮件。如果我们成功发送了消息,您将看到已交付的事件与交付时间。如果您没有看到电子邮件,则可以单击搜索选项并确保已选中已处理和已延期。处理过的事件表明我们确实收到了您的请求。延迟事件显示接收服务器是否接收该消息时出现问题或延迟。