1 Вопрос: Как отправлять простые текстовые электронные письма, используя cURL

вопрос создан в Wed, May 8, 2019 12:00 AM

Я пытаюсь отправить электронное письмо с использованием cURL (к сожалению, я не могу использовать API или библиотеку php). Я могу легко отправить письмо в формате HTML - есть множество демонстраций и примеров в Интернете. Однако я изо всех сил пытаюсь отправить простое текстовое электронное письмо.

Я пытался адаптировать примеры HTML, но безуспешно.

Я сейчас отправляю:

--mail-from john@organisation.com
--mail-rcpt jane@destination.com
--user john.doe:Pa55w0rd
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
From: John Doe <john@organisation.com>
To: Jane Doe <jane@destination.com>
Subject: Test email

Some text

Однако сервер отвечает: 252 2.1.5 Проверка не поддерживается

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

Мой синтаксис явно неправильный, так как я НЕ пытаюсь проверить пользователя, но я не могу найти в Интернете примеров для работы. Но я успешно отправил письмо HTML со встроенными изображениями через cURL на тот же почтовый сервер!

    
0
1 ответ                              1                         

Если вы используете опцию -T (--upload-file), curl не будет выдавать команду VRFY.

См. https://ec.haxx.se/usingcurl-smtp.html р>

Пример: р>

curl smtp://mail.example.com --mail-from myself@example.com \
--mail-rcpt receiver@example.com \
--upload-file email.txt

Если в curl есть сообщение для отправки, оно не будет VRFY, а вместо него будет MAIL FROM...RCPT TO.

От man curl:

  

- почта-RCPT                 (SMTP) Укажите один адрес, имя пользователя или имя списка рассылки.

     

При выполнении пересылки почты получатель должен указать действительный адрес электронной почты, на который будет отправлено письмо. (Добавлено в 7.20.0)

     

При выполнении проверки адреса (команда VRFY) получатель должен быть указан как имя пользователя или имя пользователя и   домен (как                 согласно разделу 3.5 RFC5321). (Добавлено в 7.34.0)

Это не очень хорошо заявлено, но если в команде отсутствует сообщение (-T или --upload-file), то curl выполняет проверку адреса.

    
1
2019-05-09 00: 06: 41Z
  1. Спасибо! Ничего себе - плохо документировано, даже в той ссылке, которую вы отправили!
    2019-05-08 21: 33: 30Z
  2. Согласен! Я добавил некоторую информацию со справочной страницы curl о VRFY, но сам по себе не сразу видно, что если вы не укажете файл, он автоматически выполняет проверку адреса.
    2019-05-09 00: 07: 12Z
источник размещен Вот