2015-09-22 1 views
0

Я хочу отправить содержимое файла журнала в тело письма с помощью службы telnet. Я использую следующие команды в командной строке, чтобы вызвать почту:Добавление содержимого файла в качестве тела письма при отправке почты с помощью telnet

telnet mydomain.com 25 
helo mydomain.com 
mail from:senderdomain.com 
rcpt to:recieverdomain.com 
data 
Hi.. This is for test! 
. 
quit 

Как добавить тему и содержимое текстового файла в этой почте? Пожалуйста помоги!

ответ

0

Вы не сможете легко сделать это, используя обычный сеанс telnet.

Если вам нужно отправить почтовое приложение, вам необходимо следовать RFC 2045, MIME и RFC 2046 (в частности, Mixed subtype section). Вам нужно будет отформатировать электронное письмо в соответствии с этими RFC и закодировать ваше вложение, обычно используя base64. Это большая работа, боль в том, чтобы делать команды gool ol 'dos.

Ваш самый простой вариант - использовать инструмент командной строки, например BLAT for Windows.

0

Как @NicolasRiousset указывает, что это, вероятно, слишком болезненно без надлежащего клиента, но если текстовый файл содержит хорошо отформатированный простой текст (только 7-разрядный US-ASCII, длина текста больше, чем ... мм, немного менее 1000 символов) вы можете сделать что-то вроде

#!/bin/bash 
case $# in 2) ;; *) echo "Usage: $0 <host> <filename.txt>"; exit 0;; esac 
(printf $'%\r\n' "helo mydomain.com" \ 
    "mail from:<[email protected]>" \ 
    "rcpt to:<[email protected]>" 
    "data" 
    "Subject: $2" 
    "" 
    sed $'s/^\./../;s/$/\r/' "$2" 
    printf $'%\r\n' "." "quit" 
) | 
telnet "$1" 25 

Возможны проблемы с синхронизацией; nc может работать лучше обычного старого telnet. Правильный инструмент будет ждать ответа SMTP-сервера после каждой команды и проверить его код возврата.

Я использую строки типа Bash C (для какой-либо) переносимости, но (например) ваш sed может все еще не играть хорошо. В дополнение к замене разрывов строк CRLF: s, скрипт выполняет точечную начинку, как требуется RFC5321.

Обратите внимание, что команды mail from: и rcpt to: были немного неправильными.

 Смежные вопросы

  • Нет связанных вопросов^_^