【发布时间】:2016-05-15 05:06:48
【问题描述】:
我似乎无法让每当 gem 与我的 actionmailer 一起工作。我正在尝试运行开发中的应用程序,其中将在特定时间向特定个人发送电子邮件。
在我的 schedule.rb 文件中,我有以下内容:
every :day, :at => '12:48pm' do
runner "FoodPlan.food_email"
end
在我的名为 food_plans_controller.rb 的控制器中,我有:
def self.food_email
@food_plans = FoodPlan.where(food_plan_date: Date.today).order('meal ASC')
UserMailer.food_email(@food_plans).deliver_now
end
在 user_mailer.rb 我有(注意我出于隐私原因删除了电子邮件):
def food_email (food)
@food_plans = food
mail(to: '---------@yahoo.com', subject: 'Food Orders for #{Date.today}')
end
我在视图中有一个名为 user_mailer 的文件夹,里面有一个名为 food_email.html.erb 的文件,其 ff:
<!DOCTYPE html>
<html>
</head>
<body>
<h1>title</h1>
<p>
Good morning, -----!
<br><br>
Meal Plans for <%=Date.today%>:
<br><br>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>#</th>
<th>Meal Plan</th>
<th>Ordered by</th>
<th>Room Number</th>
<th>Received by</th>
<th>Signature</th>
</tr>
</thead>
<tbody>
<%countint=1%>
<% @food_plans.each do |food_plan| %>
<tr>
<td><%=countint%></td>
<td><%= food_plan.meal %></td>
<td><%=food_plan.applicant.first_name%>
<%=food_plan.applicant.last_name%></td>
<td><%=food_plan.applicant.room_number%></td>
<%countint+=1%>
<td></td>
<td></td>
</tr>
<% end %>
</tbody>
</table>
<br>
<br>
---.
<br>
<br>
If you have any concerns, don't hesitate to call us at ------.
<br>
<br>
Thanks, <br>----
</p>
</body>
</html>
在我的开发配置中(我删除了电子邮件和密码):
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'example.com',
user_name: '-------',
password: '-------',
authentication: 'plain',
enable_starttls_auto: true }
我已尝试阅读此guide,但我仍然无法让 gem 与 actionmailer 一起使用。我还阅读了when gem 的documentation,但我仍然无法弄清楚我做错了什么。 :(
我没有收到任何错误,只是电子邮件没有发送。
【问题讨论】:
-
具体什么不起作用以及您遇到什么问题?你有错误吗?即使您希望它发送,邮件是否也没有发送?
-
电子邮件未发送。我认为它甚至不会进入调度程序。我正在查看本地主机终端的日志,即使在我在调度程序中指定的时间内,日志也没有任何更改。
标签: ruby-on-rails ruby actionmailer whenever