我经常使用 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-=-=-=-文本边界 。 辞职