Отправьте электронное письмо с прикрепленным файлом с помощью telnet или netcat

Отправьте электронное письмо с прикрепленным файлом с помощью telnet или netcat

Я часто использую telnet или netcat для подключения к SMTP-серверам и отправки электронного письма в качестве теста.

Кто-нибудь знает, как отправить электронное письмо с помощью telnet или netcat?но также прикрепите файл? Возможно, есть и лучшие способы, но я все равно хочу знать :-)

Я был бы рад решению, использующему небольшую оболочку bash для достижения цели, но не хочу использовать какие-либо другие инструменты...

решение1

Итак, используя комментарии всех как отправную точку, я придумал эту глупую путаницу :-) ...

{ 
    sleep 5; 
    echo 'ehlo';
    sleep 3;
    echo 'MAIL FROM:<[email protected]>';
    sleep 3; 
    echo 'RCPT TO: <kyle@test_dest.com>';
    sleep 3;
    echo 'DATA';
    sleep 3;
    echo -e 'To:[email protected]\nMIME-Version: 1.0 (mime-construct 1.9)\nContent-Type: application/zip\nContent-Transfer-Encoding: base64\n\n';
    dd if=/dev/urandom bs=4 count=10 2>/dev/null | openssl base64;
    echo '.';
} | telnet mx1.testdest.com 25

решение2

Ой. Вам придется закодировать вложение в base64 и создать заголовки MIME.

Вместо того чтобы каждый раз создавать новое сообщение «на лету», вероятно, было бы проще просто отправить себе по электронной почте очень короткое сообщение-пример из «реальной» почтовой программы (используя работу, проделанную людьми, которые ее написали, по преобразованию вложения в нужную кодировку и созданию заголовков MIME).

Сохраните это сообщение в текстовый файл с заголовками (конечно, удалив заголовок транспорта) и просто измените / скопируйте / вставьте его в telnet или netcat для будущих сеансов.

решение3

Хотя ручное тестирование SMTP-серверов возможно и целесообразно, использовать специально предназначенный для этого инструмент будет гораздо проще.

В этой статье объясняется SWAKS. swaks предназначен для тестирования smtp-сервера. Поддерживает вложения, аутентификацию и шифрование!

решение4

Telnet — отправка электронной почты с несколькими вложениями

cat вложение.zip | base64 > zip.txt
cat вложение.pdf | base64 > pdf.txt

# Content-Type: text/csv; name="$FILE" # для CSV-файлов
# Content-Type: application/x-msdownload; name="$FILE" # для исполняемого файла
# Content-Type: text/xml; name="$FILE" # для xml-файлов или попробуйте application/xml

telnet smtp.сервер.дом 25

ХЕЛО
ПОЧТА ОТ:[email protected]
RCPT КОМУ:[email protected]
ДАННЫЕ
Тема: Тестовое письмо
От:[email protected]
К:[email protected]
MIME-версия: 1.0
Content-Type: multipart/mixed; border="X-=-=-=-text border"

--X-=-=-=-граница текста
Тип содержимого: текст/обычный

Оставьте здесь свое сообщение...

--X-=-=-=-граница текста
Тип содержимого: application/zip; name="file.zip"
Кодирование передачи содержимого: base64
Содержимое-Расположение: вложение; имя_файла="file.zip"

UEsDBBQAAAAIAG1+zEoQa.... скопировать/вставить zip.txt

--X-=-=-=-граница текста
Тип содержимого: text/pdf; имя="file.pdf"
Кодирование передачи содержимого: base64
Содержимое-Расположение: вложение; имя_файла="file.pdf"

UEsDBBQAAAAIAG1+zEoQa.... копировать/вставить pdf.txt

--X-=-=-=-граница текста
.

ПОКИДАТЬ

Связанный контент