【发布时间】:2020-01-27 12:39:04
【问题描述】:
我正在尝试一次向多个收件人发送一堆单独的电子邮件。我打算这样做是用户将下载一个 Excel 电子表格并用一堆姓名和相应的电子邮件填写它,然后将该电子表格上传到应用程序。该应用程序创建填写了字段的客人名单对象,我想向客人名单中的每个人发送一封电子邮件。
客人名单的导入工作正常,但我似乎无法让我的邮件程序正常发送电子邮件。
更新
Mailer 现在发送的电子邮件数量与来宾列表中的人数相同,但所有电子邮件都发送到其中一个电子邮件地址。
邮件代码:
def guestlist_email()
Guestlist.all.each { |guestlist| mail(to: guestlist.email) }
end
控制器代码:
def import
Guestlist.import(params[:file])
Guestlist.all.each do |guestlist|
GuestMailer.with(guestlist: @guestlist).guestlist_email.deliver_now
end
redirect_to guestlists_url, notice: "Guest-list Successfully
Imported."
end
如果您需要更多代码,我会上传。
这是来自终端的日志。
(0.2ms) begin transaction
↳ app/models/guestlist.rb:20
Guestlist Create (3.5ms) INSERT INTO "guestlists" ("id", "name", "email", "response", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?, ?) [["id", 3], ["name", "Ryan Neill"], ["email", "ryan.neill11@gmail.com"], ["response", "no"], ["created_at", "2019-10-01 14:43:31.133312"], ["updated_at", "2019-10-01 14:43:31.133312"]]
↳ app/models/guestlist.rb:20
(3.1ms) commit transaction
↳ app/models/guestlist.rb:20
Guestlist Load (0.3ms) SELECT "guestlists".* FROM "guestlists" WHERE "guestlists"."id" = ? LIMIT ? [["id", 2], ["LIMIT", 1]]
↳ app/models/guestlist.rb:18
(0.1ms) begin transaction
↳ app/models/guestlist.rb:20
Guestlist Create (1.1ms) INSERT INTO "guestlists" ("id", "name", "email", "response", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?, ?) [["id", 2], ["name", "robiin"], ["email", "robinbrink43@gmail.com"], ["response", "yes"], ["created_at", "2019-10-01 14:43:31.147201"], ["updated_at", "2019-10-01 14:43:31.147201"]]
↳ app/models/guestlist.rb:20
(3.6ms) commit transaction
↳ app/models/guestlist.rb:20
Guestlist Load (0.3ms) SELECT "guestlists".* FROM "guestlists" WHERE "guestlists"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]]
↳ app/models/guestlist.rb:18
(0.1ms) begin transaction
↳ app/models/guestlist.rb:20
Guestlist Create (0.8ms) INSERT INTO "guestlists" ("id", "name", "email", "response", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?, ?) [["id", 1], ["name", "ryan"], ["email", "ryan.neill11@gmail.com"], ["response", ""], ["created_at", "2019-10-01 14:43:31.159332"], ["updated_at", "2019-10-01 14:43:31.159332"]]
↳ app/models/guestlist.rb:20
(3.8ms) commit transaction
↳ app/models/guestlist.rb:20
Redirected to http://localhost:3000/guestlists
Guestlist Load (0.6ms) SELECT "guestlists".* FROM "guestlists" ORDER BY "guestlists"."id" ASC LIMIT ? [["LIMIT", 1]]
↳ app/mailers/guest_mailer.rb:11
Rendering guest_mailer/guestlist_email.html.erb within layouts/mailer
Rendered guest_mailer/guestlist_email.html.erb within layouts/mailer (1.0ms)
Guestlist Load (0.5ms) SELECT "guestlists".* FROM "guestlists" ORDER BY "guestlists"."id" ASC LIMIT ? OFFSET ? [["LIMIT", 1], ["OFFSET", 1]]
↳ app/mailers/guest_mailer.rb:12
Rendering guest_mailer/guestlist_email.html.erb within layouts/mailer
Rendered guest_mailer/guestlist_email.html.erb within layouts/mailer (1.1ms)
Guestlist Load (0.8ms) SELECT "guestlists".* FROM "guestlists" ORDER BY "guestlists"."id" ASC LIMIT ? OFFSET ? [["LIMIT", 1], ["OFFSET", 2]]
↳ app/mailers/guest_mailer.rb:13
Rendering guest_mailer/guestlist_email.html.erb within layouts/mailer
Rendered guest_mailer/guestlist_email.html.erb within layouts/mailer (0.1ms)
GuestMailer#guestlist_email: processed outbound mail in 108.8ms
Sent mail to ryan.neill11@gmail.com (3768.3ms)
Date: Tue, 01 Oct 2019 16:43:31 +0200
From: rsvpeasy01@gmail.com
To: ryan.neill11@gmail.com
Message-ID: <5d9366134463d_7c6d3fdbf4e367045421e@Ryans-MacBook-Air.local.mail>
Subject: Guestlist email
Mime-Version: 1.0
Content-Type: text/html;
charset=UTF-8
Content-Transfer-Encoding: 7bit
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
/* Email styles need to be inline */
</style>
</head>
<body>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style>
/* Email styles need to be inline */
</style>
</head>
<body>
</body>
</html>
</body>
</html>
Completed 302 Found in 3969ms (ActiveRecord: 20.3ms)
提前致谢
【问题讨论】:
-
当你的导入方法执行时会发生什么?请发布您的日志输出 - 系统是否尝试发送电子邮件并失败?
-
我认为您的 guestlist_email 方法的第三行已损坏 - 您已经有一个名为 guestlist 的变量,因此不需要使用 @guestlist - 尝试摆脱
@guestlist = params[:guestlist]并将下一行更改为mail(to: guestlist.email) -
@Mark undefined method '`email' for nil:NilClass' 是我在'mail(to: @guestlist.email)' 行得到的错误 - 这就是我输入'@ guestlist = params[:guestlist]' 但没有它仍然无法工作
-
您在我的第二条评论中尝试过我的建议了吗?您将 @guestlist 分配给您的参数(在您的邮件中将为 nil)
-
会写出正确答案
标签: ruby email ruby-on-rails-5 actionmailer