Консольное приложение для отправки электронной почты.
Необходим интерпретатор Python версии не ниже, чем 3.6
--help [-h]- Справка по использованию программы.sender_email- Обязательным позиционным аргументом вводится адрес электронной почты отправителя.--server-port [-s]- Обязательным именнованным аргументом вводится адрес SMTP-сервера и, при необходимости через двоеточие номер его SSL-шифрованного порта (по умолчанию порт равен 465).
Примеры:-s smtp.gmail.com:999или-s smtp.gmail.com--mail-topic [-t]- Необязательным именнованным аргументом вводится тема письма.--zip [-z]- Необязательным именнованым флаг-параметром принимается--zip, в том случае, если вы хотите отправить все вложения одним архивом.--debug [-d]- Необязательным именнованным флаг-параметром принимается--debug, в том случае, если вы хотите видеть процесс взаимодействия клиента с сервером.--attach- Необязательным именнованным параметром принимается полный путь до файла, который вы хотите прикрепить к сообщению. В двойных квадратных скобках можно указать имя, с которым файл будет отправлен:--attach filename.txt [[new filename.txt]]--attaches- Необязательным именнованным параметром принимается строка с путями до файлов, которые вы хотите прикрепить (пути не должны содержать пробелов):
--attaches filename1.txt filename2.txt filename3.txt--open-sending [-o]- Необязательным именнованым флаг-параметром принимается--open-sending, в том случае, если требуется, чтобы каждый получатель видел других получателей данного письма.
По умолчанию получатели не видят друг-друга.--max-size- Необязательным именнованным параметром принимается целое число - максимальный размер вложения письма.
В случае, если есть несколько файлов, сумма размеров которых больше--max-size, но по отдельности их размер удовлетворяет условию, файлы будут отправлены несколькими сообщениями. Если есть файл, размер которого больше--max-size, файл будет разбит на части удовлетворяющие условию и отправлен по частям.
Значение--max-sizeуказывается в килобайтах.--mail-to [-m]- Обязательным именнованным параметром принимается строка, содержащая почтовые адреса получаетелей сообщения:
--mail-to receiver.first@gmail.com receiver.second@gmail.com
... или полный путь до файла, в начале каждой строки которого содержится один почтовый адрес получателя:
--mail-to @filename.txt
(os Windows10)
Программа запускается в командной строке с обязательными параметрами sender_email, --server-port и --mail-to:
C:\SmtpClient>python main.py sender@yandex.ru -s smtp.yandex.ru -m receiver@yandex.ru
Далее, пользователю будет предложено ввести пароль для почтового ящика отправителя.
Если логин или пароль отправителя были введены неверно, пользователю будет дано 3 попытки на повторную аутентификацию.
После ввода пароля пользователь в следующей же строке вводит текст письма.
Затем происходит отправка письма.
-
Код выхода
"0"- выход произведён в связи с успешным завершением работы программы. -
Код выхода
"1"- выход произведён в связи с тем, что пользователь не ввёл ни одного адреса получателя. -
Код выхода
"2"- выход произведён в связи с неверным форматом ввода адреса получателя. Пример верного формата ввода строки с адресом:receiver@yandex.ru -
Код выхода
"3"- выход произведён в связи с неверным форматом ввода адреса SMTP сервера. -
Код выхода
"4"- выход произведён в связи с неверным форматом ввода порта SMTP сервера. -
Код выхода
"5"- выход произведён в связи с тем, что не удалось найти файл по указанному пути. -
Код выхода
"6"- выход произведён в связи с вводом вложения неверного формата. -
Код выхода
"7"- выход произведён в связи с файловой ошибкой. -
Код выхода
"8"- выход произведён в связи с использованием интерпретатора версии ниже, чем 3.6
Чернущенко Денис, Ноябрь 2017