Решил написать об этом, чтобы не пропало и вдруг кому-нибудь пригодится, так как в Рунете ничего нашел на эту тему, нашел только на англоязычных сайтах.
Коротко, curl способен отправлять почту через smtp с ssl авторизацией (и без нее)
Работает в gmail и yandex, проверено:curl --url "smtps://smtp.gmail.com:465" --ssl-reqd --mail-from "username@gmail.com" --mail-rcpt "usernam1@yandex.ru" --upload-file mail.txt --user "username@gmail.com:My_Password" --insecure
Файл mail.txt выглядит как обычное письмо
From: "Vasja" <username@gmail.com>
To: "Ivan" <username1@yandex.ru>
Subject: "О чем-то"Тело письма.
Можно авторизоваться без отправки файла, тогда сервер будет ожидать ввода письма, которое оформляются также как в файле.
P.S. Написал об этом, потому что пока искал решение встретил много "нерешенных" вопросов на формах на тему, как отправить письмо из консоли и т.д.
>[оверквотинг удален]
> Файл mail.txt выглядит как обычное письмо
> From: "Vasja" <username@gmail.com>
> To: "Ivan" <username1@yandex.ru>
> Subject: "О чем-то"
> Тело письма.
> Можно авторизоваться без отправки файла, тогда сервер будет ожидать ввода письма, которое
> оформляются также как в файле.
> P.S. Написал об этом, потому что пока искал решение встретил много "нерешенных"
> вопросов на формах на тему, как отправить письмо из консоли и
> т.д.
--mail-auth <address>
(SMTP) Specify a single address. This will be used to specify
the authentication address (identity) of a submitted message
that is being relayed to another server.(Added in 7.25.0)
--mail-from <address>
(SMTP) Specify a single address that the given mail should get
sent from.(Added in 7.20.0)
--max-filesize <bytes>
Specify the maximum size (in bytes) of a file to download. If
the file requested is larger than this value, the transfer will
not start and curl will return with exit code 63.NOTE: The file size is not always known prior to download, and
for such files this option has no effect even if the file trans-
fer ends up being larger than this given limit. This concerns
both FTP and HTTP transfers.Manual page curl(1) line 929/2217 46%
Гм, похоже редкий юзер осиливает прочесть man curl до середины. :-)
А уж про man mail/mailx я даже и заикаться побаиваюсь. :-)
Я прочитал man по curl, но всегда при чтении манов остается вопрос, работает ли та или иная
фича программы.
Поскольку у меня не получилось грамотно составить команду, полез рыскать по сети и обнаружил, что в Рунете об этом ни слова, при этом наткнулся на несколько топиков с вопросами об отправке почты из консоли, без внят. ного решения
Только вот не понимаю, можно ли в консоли приложить вложенный файл, изображение, например.
Или нужно его вписывать в файл с телом письма?
Вроде бы есть флаг -d и -F
Но применение их относительно отправки почты остается туманным.
> Только вот не понимаю, можно ли в консоли приложить вложенный файл, изображение,
> например.
> Или нужно его вписывать в файл с телом письма?Да, в MIME-кодированном виде. Curl сам по себе не умеет отправлять письма с вложениями.
> Вроде бы есть флаг -d и -F
> Но применение их относительно отправки почты остается туманным.Ничего туманного. В мане ясно и недвусмысленно указано на то, что эти опции касаются
именно HTML-форм и работы по пртоколу HTTP:
-d, --data <data>
(HTTP) Sends the specified data in a POST
request to the HTTP server, in the same way
that a browser does when a user has filled in
an HTML form and presses the submit button.
This will cause curl to pass the data to the
server using the content-type application/x-
www-form-urlencoded. Compare to -F, --form...........
..........
..........-F, --form <name=content>
(HTTP) This lets curl emulate a filled-in form
in which a user has pressed the submit button.
This causes curl to POST data using the Con-
tent-Type multipart/form-data according to RFC
2388. This enables uploading of binary files
etc.