繁体   English   中英

山d发送电子邮件到多个数组

[英]Mandrill send email to multiple with array

我正在使用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

有更好的(可行的)方法吗?

UPDATE

我的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"

}

您应该只从merge_vars删除rcpt ,因为有多个收件人。

并通过执行以下操作确保message确实包含您的所有电子邮件: message.inspect

另一个好的做法是在山man显示板中查看API日志。 总会有有用的信息。

更新:

尝试这个

request.agents.each do |a| 
  {
    email: a.email
  }
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM