使用 telnet 或 netcat 发送带有附件的电子邮件

使用 telnet 或 netcat 发送带有附件的电子邮件

我经常使用 telnet 或 netcat 连接 smtp 服务器来发送邮件进行测试。

有人知道如何使用 telnet 或 netcat 发送电子邮件吗但也要附加一个文件?可能有更好的方法,但我仍然想知道:-)

我很高兴能使用一个小型 bash shell 来实现目标,但不想使用任何其他工具......

答案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.服务器.dom 25

直升机
邮件发件人:[电子邮件保护]
收件地址:[电子邮件保护]
数据
主题:测试电子邮件
从:[电子邮件保护]
到:[电子邮件保护]
MIME 版本:1.0
内容类型:multipart/mixed;边界=“X-=-=-=-文本边界”

--X-=-=-=-文本边界
内容类型:text/plain

在这里输入您的信息...

--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-=-=-=-文本边界

辞职

相关内容