Как отправить электронную почту через "exim -t"? [режим sendmail look alike"]

Я использую Golang для отправки электронной почты с exim следующим способом

const sendmail = "/usr/sbin/exim"

func submitMail(m *gomail.Message) (err error) {
    cmd := exec.Command(sendmail, "-t")
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr

    pw, err := cmd.StdinPipe()
    if err != nil {
        return
    }

    err = cmd.Start()
    if err != nil {
        return
    }

    var errs [3]error
    _, errs[0] = m.WriteTo(pw)
    errs[1] = pw.Close()
    errs[2] = cmd.Wait()
    for _, err = range errs {
        if err != nil {
            return
        }
    }
    return
}

как ответили здесь

Проблема в том, что exim удаляет Bcc с -t

Если exim вызывается с опцией -t, чтобы извлечь адреса получателей из заголовков сообщения, он удаляет любой существующий заголовок Bcc: (после извлечения его адресов), если только у сообщения нет заголовка To: или Cc: в этом случае заголовок Bcc: без адресов остается в сообщении в соответствии с RFC 822. Если -t отсутствует в командной строке, любой существующий заголовок Bcc: не удаляется.

Если exim вызывается для получения сообщения с адресами получателей, указанными в командной строке, и в сообщении нет заголовка Bcc:, To: или Cc:, он обычно добавляет заголовок To:, перечисляющий получателей. Известно, что некоторые программы для рассылки отправляют сообщения таким образом, и в этом случае создание заголовка To: не то, что нужно. Если установлена ​​опция always_bcc, exim добавляет пустой заголовок Bcc: вместо этого в этом случае.

найти в Spec здесь

1 ответ

Решение

Режим "Sendmail look alike" с-t удаляет Bcc: Заголовки после их обработки.
В -t Режим Bcc: содержимое заголовков будет добавлено в список получателей (SMTP), НО получатели не будут видеть / получать Bcc: заголовки.

Рекомендация по стилю: если вы используете другой софт SMTP/MTA (например, Exim) в "sendmail look alike" (режим сопоставления командной строки), ТО используйте программу / бинарный файл sendmail, предоставленный ими.
const sendmail = "/usr/sbin/sendmail"

Другие вопросы по тегам