我正在尝试通过sendgrid从heroku上的rails应用程序发送邮件。 这是一个仅尝试发送测试电子邮件的独立应用程序。我没有错误,但邮件没有发送。感谢您的帮助。
== config/environment.rb ===
ActionMailer::Base.smtp_settings = {
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => ENV['SENDGRID_DOMAIN'],
:address => "smtp.sendgrid.net",
:port => 587,
:authentication => :plain,
}
===
==== config/environments/production.rb ===
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
=====
== app/models/notifier.rb ==
class Notifier < ActionMailer::Base
include SendGrid
default from: "abc@yahoo.com"
#sendgrid_category :use_subject_lines
#sengrid_enable :ganalytics, :opentrack
def test_notification
mail(:to => "xyz@gmail.com", :subject => "mail from heroku")
puts("Sent mail from notifier")
end
end
========
我尝试从heroku控制台运行test_notification方法
>> Notifier.test_notification
(这会打印出一些日志信息..)
#<Mail:Message:279922420, Multipart: false, Headers: <from.., To, Subject, etc).
但send_grid不会报告从我的帐户发出的任何邮件。我没有收到电子邮件。
我还尝试通过调用/ home / index / controller中的test_notification来发送邮件,这将在访问应用程序的主页时发送。
===
class HomeController < ApplicationController
def index
Notifier.test_notification()
end
end
===
统计信息不会报告发送的邮件。非常感谢任何帮助。
谢谢! DS
答案 0 :(得分:6)
试
Notifier.test_notification.deliver
您需要在方法上调用deliver
方法来实际发送消息。
答案 1 :(得分:0)
确保你的Heroku有一个SendGrid插件。代码
user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => ENV['SENDGRID_DOMAIN'],
详细信息应该是您的sendgrid用户名,密码和域