【发布时间】:2015-05-09 09:35:34
【问题描述】:
我正在使用 Mandrill API 发送电子邮件。我有一堆@request.agents(一组代理 ID),我想向数组中的所有代理发送电子邮件。
这是我目前的方法,但它似乎没有通过a(我知道这可能是完全错误的方法)
def new_request_agents(request, user)
@request = request
@user = user
template_name = "new-request"
template_content = []
message = {
to: [
request.agents.each do |a|
if a != ""
{
email: Agent.find(a.to_i).email
}
end
end
],
subject: "New Request: #{user.email}",
merge_vars: [
{rcpt: @user.email,
vars: [
{name: "MESSAGE", content: request.message},
{name: "AGENTS", content: request.agents}
]
}
]
}
mandrill_client.messages.send_template template_name, template_content, message
end
有没有更好的(和有效的)方法来做到这一点?
更新
我的 API 日志显示:
{
"template_name": "new-request",
"template_content": {},
"message": {
"to": [
[
"",
"4",
"5"
]
],
"subject": "New Request: example@gmail.com",
"merge_vars": [
{
"vars": [
{
"name": "MESSAGE",
"content": "Test message"
},
{
"name": "AGENTS",
"content": [
"",
"4",
"5"
]
}
]
}
]
},
"async": false,
"ip_pool": null,
"send_at": null,
"key": "B-B_-yRi1LLLhBrzZEVLLw"
}
【问题讨论】:
-
请确保
message是正确的:message.inspect -
您的问题是生成的
message对象不包含您希望它包含的内容,还是其中的所有内容都符合预期,但 Mandrill 做错了什么? -
@janfoeh 我的问题是它根本不会发送。我收到
Couldn't find Agent with id=错误。我认为我使用 each 循环是错误的方法?
标签: ruby-on-rails arrays email mandrill