Отправка электронного письма из командной строки Windows

Отправка электронного письма из командной строки Windows

Возникла необходимость отправлять данные через почтовый сервис, но чтобы не загружать пользователя ненужными действиями решил прибегнуть к консольной утилите для отправки e-mail под Windows — blat
Т.к. для отправки письма по протоколу SMTP без аутентификации уже не обойтись, то я для себя составил такой формат командной строки и вывел его в пакетный cmd файл:

blat.exe -server server.ru -f e-mail-from@server.ru -u e-mail-from@server.ru -pw pass  -to e-mail-to@server.ru -subject SUBJ -body "Текст сообщения" -attach FILE

Немного пояснений:

  • -server server.ru — сервер Исходящей почты. Несмотря на то, что мы отправляем из командной строки, но сервер, с которого будет уходить письмо, должен быть!
  • -f e-mail-from@server.ru — адрес отправителя. Как и в случае с сервером. Письмо должно быть от кого-то ;)
  • -u e-mail-from@server.ru — имя пользователя (логин) для сервера Исходящей почты. Используется для упомянутой выше SMTP аутентификации. В моем случае логин должен состоять из имени пользователя на сервере (то есть имя@сервер), это зависит от сервера. На других серверах может быть просто e-mail-from
  • -pw pass — пароль для той же аутентификации.
  • -to e-mail-to@server.ru — адрес получателя
  • -subject SUBJ — тема письма. Должна быть в кавычках, если есть пробелы!
  • -body "Текст сообщения" — текст письма. Должен быть в кавычках, если есть пробелы!
  • -attach FILE — собственно то, ради чего это всё я затеял. Путь к файлу и имя файла FILE :)

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

Отправка электронного письма из командной строки Windows: 8 комментариев

  1. — имя файла, содержимое которого будет использоваться утилитой в качестве основного текста письма.

    -tf — ключ, указывающий на файл со списком адресов получателей.

  2. то что надо, но при отправке даже не очень большого файла вылетает со след ошибкой:
    «Error: Wait a bit (possible timeout).
    Message not accepted by server»
    PS правда заметил что иногда письмо все же доходит но правда с большой паузой

  3. @ Alexander:
    Это зависит в какой кодировке вы создаете письмо. Это же командная строка. Можете подсунуть тест сообщения из файла, а уже в этом файле делайте нужную кодировку. Единсвтенный ключ на счет кодировки тела письма что я нашел это -unicode

  4. @ mch87:
    когда запускаете в командной строке, программа blat.exe показывает результат работы. Если произошла ошибка, то будет выведен какой-то текст. Можете скопировать его и прислать, посмотрим что можно сделать.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>