私はよく、テストとして電子メールを送信するために、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 猫添付ファイル.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.server.dom 25 こんにちは メールの送信元:[メールアドレス] 送信先:[メールアドレス] データ 件名: テストメール から:[メールアドレス] に:[メールアドレス] MIME バージョン: 1.0 コンテンツタイプ: multipart/mixed; boundary="X-=-=-=-text boundary" --X-=-=-=-テキスト境界 コンテンツタイプ: text/plain ここにメッセージを入力してください... --X-=-=-=-テキスト境界 コンテンツタイプ: application/zip; name="file.zip" コンテンツ転送エンコーディング: base64 コンテンツ配置: 添付ファイル; ファイル名="file.zip" UEsDBBQAAAAIAG1+zEoQa.... zip.txt をコピー/貼り付け --X-=-=-=-テキスト境界 コンテンツタイプ: text/pdf; name="file.pdf" コンテンツ転送エンコーディング: base64 コンテンツ配置: 添付ファイル; ファイル名="file.pdf" UEsDBBQAAAAIAG1+zEoQa.... pdf.txt をコピー/貼り付け --X-=-=-=-テキスト境界 。 やめる