使用Sendgrid不使用X-SMTPAPI标头发送多封电子邮件



我一直在发送电子邮件,如下所示:

def send
ActionMailer::Base.mail(content_type: "text/html", from: ""name" <email@gmail.com>", to: "email2@gmail.com", subject: "subject", body: "<h1>Hi</h1>" , priority: 2).deliver
end

并且一直运行良好,但现在我想发送多封电子邮件,因为我需要处理 1000+ 用户。所以我一直在读我可以用 X-SMTPAPI 标头完成此操作,所以我尝试了这个

def send_all
recipients = ["users1@gmail.com", "users2@gmail.com"]
ActionMailer::Base.headers["X-SMTPAPI"] = { :to => recipients }.to_json
ActionMailer::Base.mail(content_type: "text/html", from: ""name" <email@gmail.com>", to: "email2@gmail.com", subject: "subject", body: "<h1>Hi</h1>" , priority: 2).deliver
end

但是Sendgrid只是通过电子邮件发送给 email2@gmail.com 而不是标题。我该如何解决这个问题?

我这样做如下,我认为不是最好的解决方案,因为我再次加载 Sendgrid 配置,但它有效

def send
Mail.defaults do
delivery_method :smtp, { :address   => 'smtp.sendgrid.net',
:port      => 587,
:domain    => 'sendgrid.com',
:user_name => 'yourSendGridUsername',
:password  => 'yourSendGridPassword',
:authentication => 'plain',
:enable_starttls_auto => true }
end
recipients = ["users1@gmail.com", "users2@gmail.com"]
mail = Mail.deliver do
header['X-SMTPAPI'] =  { :to => recipients }.to_json
to "ignore@gmail.com"
from 'email@gmail.com'
subject 'Ruby Example using X-SMTPAPI header'
text_part do
body 'You would put your content here, but I am going to say: Hello world!'
end
html_part do
content_type 'text/html; charset=UTF-8'
body '<b>Hello world!</b><br>Glad to have you here!'
end
end
end

我也需要在课堂上require 'mail'

相关内容

最新更新