我經常使用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 - 發送帶有多個附件的電子郵件
貓附件.zip | Base64 > zip.txt 貓附件.pdf | Base64 > pdf.txt # 內容類型:文字/csv; name="$FILE" # 對於 CSV 文件 # 內容類型:application/x-msdownload; name="$FILE" # 執行檔 # 內容類型:text/xml; name="$FILE" # 對於 xml 檔案或嘗試 application/xml telnet smtp.server.dom 25 直升機 郵件來自:[電子郵件受保護] RCPT 至:[電子郵件受保護] 數據 主題:測試電子郵件 從:[電子郵件受保護] 到:[電子郵件受保護] MIME 版本:1.0 內容類型:多部分/混合;邊界=“X-=-=-=-文字邊界” --X-=-=-=-文字邊界 內容類型:文字/純文字 將您的留言放在這裡... --X-=-=-=-文字邊界 內容類型:應用程式/zip;名稱=“檔案.zip” 內容傳輸編碼:base64 內容處置:附件;檔案名稱=“檔案.zip” UEsDBBQAAAAIAG1+zEoQa...複製/貼上 zip.txt --X-=-=-=-文字邊界 內容類型:文字/pdf;名稱=“文件.pdf” 內容傳輸編碼:base64 內容處置:附件;文件名=“文件.pdf” UEsDBBQAAAAIAG1+zEoQa...複製/貼上 pdf.txt --X-=-=-=-文字邊界 。 辭職