2016-01-22 8 views
0

Я использую ruby ​​для отправки транзакционных писем через Mandrill. Как часть моего продукта, я хочу, чтобы иметь возможность отправлять одно и то же письмо двум получателям и видеть их адрес электронной почты друг друга. (Как введение почты между двумя людьми).Несколько получателей, использующих Mandrill и Rails

Итак, я заполнил поле «в» с обоими электронными письмами, и на моей панели инструментов кажется, что оба отправлены. Но, к сожалению, только один из получателей получает почту, а детали второго получателя скрыты.

В заключение, у меня есть две проблемы:

  1. только один получатель Получает почте

  2. Скрытые детали второго получателя.

ответ

0

Я подошел поддержку Mandrill и это то, что они ответили:

Если вы хотите, чтобы включить эту опцию глобально для всех сообщений, отправляемых, то вы хотите, чтобы убедиться, что у вас есть «Выводить список получателей при отправке нескольким адресам». опция включена в ваших настройках по умолчанию.

Если, вместо того чтобы сделать это изменение в глобальном масштабе, вы хотели бы, чтобы она для отдельных сообщений, вы хотите использовать X-MC-PreserveRecipients (заголовок SMTP) или preserve_recipients (API параметр) и установите значение «true».

Если вы установите для этого параметра значение true, мы предоставим список получателей друг другу, как вы могли бы видеть при отправке почты с обычной почтовой клиентской программы .

Это сработало!

1

Если вы хотите, чтобы оба получателей, чтобы иметь возможность видеть друг друга, вы можете передать массив электронной почты в опции to.

Если вы делаете не хотите, чтобы любой из них мог видеть друг друга, вы можете в цикле над пользователями отправить указанное электронное письмо.

При использовании ActionMailer это можно сделать так:

mail(
    to: ['[email protected]', '[email protected]'] 
) 

Или в цикле:

[user1, user2].each do |user| 
    UserMailer.some_email(user).deliver_now 
end 

mail(
    to: user.email 
) 

сообщение код, у меня есть представление о том, что ваша проблема может быть. Помните, что метод класса ActionMailer должен возвращать только mail() и не должен зацикливаться внутри этого метода.

tldr: делать все, что не связано с электронной почтой вне почтовой программы, передавать необходимые данные в качестве параметров для метода, метод конца с вызовом mail().

+0

Да, я получил эту часть. На самом деле тайна была решена командой поддержки Мандрилла. – DanielZiv

Смежные вопросы