Jan 19, 2024
Curl - работаем с электронной почтой
В статье рассказывается, как с помощью консольной утилиты curl можно проверять и отправлять электронную почту.
205 Words
2024-01-19 13:54 +0300
Проверить почту по протоколу IMAP
Чтобы проверить, какие расширения поддерживает IMAP сервер, можно вызвать такую команду
#!/usr/bin/env
auth="vodolaz095:password"
host=imaps://imap.example.org
curl --url $host --user $auth -X "CAPABILITY"
Dovecot сервер версии 2.4.4, с которым я эксперементировал, поддерживал эти функции:
CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS BINARY MOVE SNIPPET=FUZZY PREVIEW=FUZZY PREVIEW STATUS=SIZE SAVEDATE LITERAL+ NOTIFY SPECIAL-USE ACL RIGHTS=texk
Эта команды показывают все доступные директории:
#!/usr/bin/env bash
auth="vodolaz095:password"
host=imaps://imap.example.org
curl --url $host --user $auth -X 'LIST "" "*"'
Эта команда считает сообщения в директории INBOX:
#!/usr/bin/env bash
auth="vodolaz095:password"
host=imaps://imap.example.org
curl --url $host --user $auth -X 'STATUS INBOX (MESSAGES)'
Другие примеры опубликованы тут: https://everything.curl.dev/usingcurl/imap.html
Отправить почту по SMTP Submission протоколу
Сначала надо создать текстовой файл email.txt с письмом, которое мы хотим послать.
From: vodolaz095 <[email protected]>
To: vodolaz095 <[email protected]>
Subject: проверка почтой
Date: Mon, 17 Dec 2024 08:45:16
Проверка почты, если вы не получили это письмо, то я отправлю его ещё один раз.
Всех благ.
С уважением, Анатолий.
Потом письмо можно отправить такой командой
#!/usr/bin/env bash
auth="vodolaz095:password"
curl smtp://smtp.example.org \
--ssl-reqd \
--user $auth \
--mail-from [email protected] \
--mail-rcpt [email protected] \
--upload-file email.txt
Другие примеры опубликованы тут: https://everything.curl.dev/usingcurl/smtp.html