{"id":1999,"date":"2025-04-18T22:11:29","date_gmt":"2025-04-18T14:11:29","guid":{"rendered":"https:\/\/www.mailabc.cn\/blog\/?p=1999"},"modified":"2025-07-15T17:10:03","modified_gmt":"2025-07-15T09:10:03","slug":"swaks","status":"publish","type":"post","link":"https:\/\/www.mailabc.cn\/blog\/2025\/04\/18\/swaks\/","title":{"rendered":"\u90ae\u4ef6SMTP\u6d4b\u8bd5\u5229\u5668Swaks"},"content":{"rendered":"<section>\n<section>\n<section>\n<h2><strong>Swaks\u4ecb\u7ecd<\/strong><\/h2>\n<\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section><strong>Swaks\uff08Swiss Army Knife for SMTP\uff09<\/strong>\u662f\u4e00\u4e2a\u975e\u5e38\u5f3a\u5927\u7684\u547d\u4ee4\u884c\u5de5\u5177\uff08\u7531perl\u8bed\u8a00\u7f16\u5199\uff09\uff0c\u4e3b\u8981<strong>\u7528\u4e8e\u6d4b\u8bd5\u3001\u8c03\u8bd5\u548c\u8bca\u65adSMTP\u90ae\u4ef6\u670d\u52a1\u5668\u7684\u914d\u7f6e<\/strong>\u3002\u5b83\u652f\u6301\u591a\u79cdSMTP\u529f\u80fd\uff0c\u5305\u62ec\u8eab\u4efd\u9a8c\u8bc1\u3001\u52a0\u5bc6\u8fde\u63a5\u3001TLS\u3001\u90ae\u4ef6\u5185\u5bb9\u6784\u9020\u3001\u9644\u4ef6\u53d1\u9001\u7b49\uff0c\u56e0\u6b64\u975e\u5e38<strong>\u9002\u5408\u90ae\u4ef6\u7ba1\u7406\u5458\u3001\u5f00\u53d1\u8005\u3001\u5b89\u5168\u6e17\u900f\u6d4b\u8bd5\u4eba\u5458\u548c\u7cfb\u7edf\u8fd0\u7ef4\u4eba\u5458<\/strong>\u8fdb\u884c\u90ae\u4ef6\u7cfb\u7edf\u7684\u6d4b\u8bd5\u548c\u6392\u9519\u3002\u8be5\u9879\u76ee\u7531<strong>John Jetmore<\/strong>\u7ef4\u62a4\uff0c\u9075\u5faa\u00a0GNU GPLv2\u5f00\u6e90\u534f\u8bae\u3002<\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section>\n<h2><strong>\u5b89\u88c5\u90e8\u7f72Swaks<\/strong><\/h2>\n<\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section>\u8fdb\u5165\u8be5\u9879\u76ee\u7684Github\u4e3b\u9875\u53ef\u4ee5\u4e0b\u8f7d\u7a0b\u5e8f\u5305\uff0c\u76ee\u524d\uff082025\u5e744\u6708\uff09\u6700\u65b0\u7248\u4e3a<strong>20240103.0\u00a0<\/strong>\u3002\u4e0b\u8f7d\u5730\u5740\u53c2\u8003\u6587\u672b\u201cSwaks\u4e0b\u8f7d\u5730\u5740\u201d\uff08\u5982\u56e0\u7f51\u7edc\u539f\u56e0\u65e0\u6cd5\u4e0b\u8f7d\uff0c\u4e5f\u53ef\u4ee5\u5173\u6ce8<strong>MailABC<\/strong>\u516c\u4f17\u53f7\u56de\u590d\u201cswaks\u4e0b\u8f7d\u201d\u83b7\u53d6\uff09\u3002\u4e0b\u8f7d\u4e4b\u540e\u5f97\u5230swaks-20240103.0.tar.gz\u538b\u7f29\u5305\uff0c\u89e3\u538b\u4e4b\u540e\u5c06\u5176\u4e2dswaks\u6587\u4ef6\u62f7\u8d1d\u5230\/usr\/bin\u76ee\u5f55\uff0c\u5e76\u8bbe\u7f6e\u53ef\u6267\u884c\u6743\u9650\u3002\u793a\u4f8b\u547d\u4ee4\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\"># \u89e3\u538b\u6587\u4ef6\r\ntar -zxvf swaks-20240103.0.tar.gz\r\n# \u62f7\u8d1d\u6587\u4ef6\u81f3\/usr\/bin\u76ee\u5f55\r\ncd swaks-20240103.0 &amp;&amp; cp swaks \/usr\/bin\r\n# \u8bbe\u7f6e\u53ef\u6267\u884c\u6743\u9650\r\nchmod 755 \/usr\/bin\/swaks\r\n# \u6267\u884cswaks\u547d\u4ee4\u67e5\u770b\u5e2e\u52a9\r\nswaks --help<\/pre>\n<section>\n<section>\n<section>\n<h2><strong>Swaks\u5e38\u7528\u9009\u9879<\/strong><\/h2>\n<\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section><strong>\u6307\u5b9aSMTP\u670d\u52a1\u5668\uff1a<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">--server\uff1a\u6307\u5b9aSMTP\u670d\u52a1\u5668\u8fdb\u884c\u90ae\u4ef6\u53d1\u9001\u3002<\/pre>\n<p><strong>\u6307\u5b9a\u6536\u4ef6\u4eba\u548c\u53d1\u4ef6\u4eba\uff1a<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">--to &lt;\u6536\u4ef6\u4eba\u5730\u5740&gt;\uff1a\u6307\u5b9a\u90ae\u4ef6\u7684\u6536\u4ef6\u4eba\u3002\r\n--from &lt;\u53d1\u4ef6\u4eba\u5730\u5740&gt;\uff1a\u6307\u5b9a\u90ae\u4ef6\u7684\u53d1\u4ef6\u4eba\u3002<\/pre>\n<p><strong>\u90ae\u4ef6\u4e3b\u9898\uff1a<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">--header \"Subject: xxx\"\uff1a\u6307\u5b9a\u90ae\u4ef6\u4e3b\u9898\u3002\r\n--h-Subject\u00a0xxx:\u4e0e\u4e0a\u9762\u6548\u679c\u76f8\u540c\u3002<\/pre>\n<p><strong>\u90ae\u4ef6\u6b63\u6587\uff1a<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">--body &lt;\u90ae\u4ef6\u6b63\u6587\u5185\u5bb9&gt;\uff1a\u6307\u5b9a\u90ae\u4ef6\u6b63\u6587\u7684\u5185\u5bb9\uff0c\u9ed8\u8ba4\u662f\u7eaf\u6587\u672c\u5185\u5bb9\u3002\r\n--attach-type text\/plain --attach-body\u00a0 'body text' \uff1a\u4e0e\u4e0a\u8ff0--body\u6548\u679c\u76f8\u540c\u3002\u5982\u9700\u53d1\u9001html\u683c\u5f0f\u7684\u90ae\u4ef6\uff0c\u53ef\u4ee5\u53c2\u8003\u4e0b\u6587\u7684\u793a\u4f8b\u3002<\/pre>\n<p><strong>\u4f7f\u7528\u8eab\u4efd\u9a8c\u8bc1\uff1a<\/strong><\/p>\n<p>Swaks\u652f\u6301\u901a\u8fc7SMTP\u8ba4\u8bc1\uff08\u4f8b\u5982\uff1aPLAIN\u3001LOGIN\u3001CRAM-MD5\u7b49\uff09\u6765\u8fde\u63a5\u90ae\u4ef6\u670d\u52a1\u5668\u3002\u5982\u679c\u4f60\u7684SMTP\u670d\u52a1\u5668\u9700\u8981\u8ba4\u8bc1\uff0c\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u9009\u9879\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">--auth LOGIN\uff1a\u4f7f\u7528LOGIN\u8ba4\u8bc1\u3002\r\n--auth PLAIN\uff1a\u4f7f\u7528PLAIN\u8ba4\u8bc1\u3002\r\n--auth CRAM-MD5\uff1a\u4f7f\u7528CRAM-MD5\u8ba4\u8bc1\uff0c\u4f9d\u8d56Digest::MD5\u6a21\u5757\u3002\r\n--auth\u00a0DIGEST-MD5\uff1a\u4f7f\u7528DIGEST-MD5\u8ba4\u8bc1\uff0c\u4f9d\u8d56Authen::SASL\u6a21\u5757\u3002\r\n--auth CRAM-SHA1\uff1a\u4f7f\u7528\u00a0CRAM-SHA1\u8ba4\u8bc1\u4f9d\u8d56Digest::SHA\u6a21\u5757\u3002\r\n--auth-user &lt;\u7528\u6237\u540d&gt;\uff1a\u6307\u5b9a\u7528\u6237\u540d\u3002\r\n--auth-password &lt;\u5bc6\u7801&gt;\uff1a\u6307\u5b9a\u5bc6\u7801\u3002<\/pre>\n<p><strong>\u542f\u7528TLS\u52a0\u5bc6\uff1a<\/strong><\/p>\n<p>Swaks\u4e5f\u652f\u6301\u901a\u8fc7TLS\u52a0\u5bc6\u4e0eSMTP\u670d\u52a1\u5668\u7684\u8fde\u63a5\u3002\u5173\u4e8eTLS\u90e8\u5206\uff0cSwaks\u63d0\u4f9b\u4e86\u8bf8\u591a\u529f\u80fd\uff0c\u5efa\u8bae\u67e5\u770b\u5e2e\u52a9\u6587\u6863\u83b7\u53d6\u66f4\u591a\u4fe1\u606f\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">--tls\uff1a\u4f7f\u7528TLS\u52a0\u5bc6\u8fde\u63a5\uff0c\u5efa\u7acb\u8fde\u63a5\u540e\u53d1\u9001STARTTLS\u6307\u4ee4\uff0c\u4e00\u822c\u7528\u4e8e\u8fde\u63a525\u3001587\u7aef\u53e3\uff1b\r\n--tls-on-connect\uff1a\u5efa\u7acb\u8fde\u63a5\u65f6\u542f\u7528tls\uff0c\u4e00\u822c\u7528\u4e8e\u8bbf\u95ee465\u7aef\u53e3\uff1b<\/pre>\n<p><strong>\u6307\u5b9aSMTP\u7aef\u53e3\uff1a<\/strong><\/p>\n<p>\u5982\u679cSMTP\u670d\u52a1\u5668\u4f7f\u7528\u975e\u9ed8\u8ba4\u7aef\u53e3\uff08\u9ed8\u8ba4\u662f25\uff09\uff0c\u4f60\u53ef\u4ee5\u6307\u5b9a\u7aef\u53e3\u53f7\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">--port &lt;\u7aef\u53e3\u53f7&gt;\uff1a\u6307\u5b9aSMTP\u670d\u52a1\u7684\u7aef\u53e3\u3002<\/pre>\n<p><strong>\u53d1\u9001\u5e26\u9644\u4ef6\u7684\u90ae\u4ef6\uff1a<\/strong><\/p>\n<p>Swaks\u652f\u6301\u53d1\u9001\u5e26\u9644\u4ef6\u7684\u90ae\u4ef6\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">--attach @&lt;\u9644\u4ef6\u8def\u5f84&gt;\uff1a\u9009\u9879\u6307\u5b9a\u9644\u4ef6\u6587\u4ef6\u8def\u5f84\uff0c\u6ce8\u610f@\u7b26\u53f7\u3002<\/pre>\n<p><strong style=\"color: #222222; font-size: 18px;\">Swaks\u53d1\u4fe1\u793a\u4f8b<\/strong><\/p>\n<section>\n<section>\n<section>\n<section><\/section>\n<\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section>\n<section>\n<section>\n<section>\n<section>\n<section>\n<section>\n<section>\n<section><\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section>\n<section>\n<section><\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section>\n<section>\n<section><\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section>\n<section>\n<section><\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<section><\/section>\n<section>\n<section><strong>\u6ce8\u610f\uff1a<\/strong>\u76ee\u524d\u50cf\u7f51\u6613163\u90ae\u7bb1\u3001\u817e\u8bafQQ\u90ae\u7bb1\u7b49\u4e3b\u6d41\u90ae\u7bb1\u5e73\u53f0\u9ed8\u8ba4\u4e0d\u542f\u7528SMTP\u670d\u52a1\uff0c\u5982\u679c\u9700\u8981\u4f7f\u7528\u8fd9\u4e9b\u90ae\u7bb1\u8fdb\u884c\u6d4b\u8bd5\uff0c\u5efa\u8bae\u53c2\u8003\u4e4b\u524d\u7684\u6587\u7ae0<a href=\"https:\/\/www.mailabc.cn\/blog\/2024\/04\/11\/%e5%9b%bd%e5%86%85%e4%b8%bb%e6%b5%81%e9%82%ae%e7%ae%b1%e5%a6%82%e4%bd%95%e5%90%af%e7%94%a8smtp-pop3-imap%e7%ad%89%e5%8d%8f%e8%ae%ae%ef%bc%9f\/\">\u56fd\u5185\u4e3b\u6d41\u90ae\u7bb1\u5982\u4f55\u542f\u7528SMTP\/POP3\/IMAP\u7b49\u534f\u8bae\uff1f<\/a>\u5f00\u542fSMTP\u529f\u80fd\u3002<\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section><strong>\u4f7f\u7528LOGIN\u8ba4\u8bc1\u53d1\u90ae\u4ef6<\/strong><\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section>\u793a\u4f8b\u547d\u4ee4\u5982\u4e0b\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">swaks --to t1@mailabc.cn --from demo@mailabc.cn --server mail.mailabc.cn --auth LOGIN --auth-user \"demo@mailabc.cn\" --auth-password \"BiC9E7YjbdDI7TkH\" --header \"Subject: Test\" --body \"This is a test message\"\r\n<\/pre>\n<section>\n<section>\n<section>\u6267\u884c\u8f93\u51fa\u793a\u4f8b\uff08\u8f93\u51fa\u5185\u5bb9\u592a\u957f\uff0c\u540e\u7eed\u793a\u4f8b\u4e0d\u518d\u5c55\u793a\uff09\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">[root@localhost ~]# swaks --to t1@mailabc.cn --from demo@mailabc.cn --server mail.mailabc.cn --auth LOGIN --auth-user \"demo@mailabc.cn\" --auth-password \"BiC9E7YjbdDI7TkH\" --header \"Subject: Test\" --body \"This is a test message\"\r\n*** DEPRECATION WARNING: Relying on IO::Socket::INET to send via inet sockets. Install IO::Socket::IP instead.\r\n=== Trying mail.mailabc.cn:25...\r\n=== Connected to mail.mailabc.cn.\r\n&lt;-  220 mailabc.cn\r\n -&gt; EHLO localhost\r\n&lt;-  250-mail\r\n&lt;-  250-PIPELINING\r\n&lt;-  250-AUTH LOGIN PLAIN\r\n&lt;-  250-AUTH=LOGIN PLAIN\r\n&lt;-  250-STARTTLS\r\n&lt;-  250-SMTPUTF8\r\n&lt;-  250 8BITMIME\r\n -&gt; AUTH LOGIN\r\n&lt;-  334 dXNlcm5hbWU6\r\n -&gt; ZGVtb0BtYWlsYWJjLmNu\r\n&lt;-  334 UGFzc3dvcmQ6\r\n -&gt; QmlDOUU3WWpiZERJN1RrSA==\r\n&lt;-  235 Authentication successful\r\n -&gt; MAIL FROM:&lt;demo@mailabc.cn&gt;\r\n&lt;-  250 Mail OK\r\n -&gt; RCPT TO:&lt;t1@mailabc.cn&gt;\r\n&lt;-  250 Mail OK\r\n -&gt; DATA\r\n&lt;-  354 End data with &lt;CR&gt;&lt;LF&gt;.&lt;CR&gt;&lt;LF&gt;\r\n -&gt; Date: Thu, 17 Apr 2025 21:10:05 +0800\r\n -&gt; To: t1@mailabc.cn\r\n -&gt; From: demo@mailabc.cn\r\n -&gt; Subject: Test\r\n -&gt; Message-Id: &lt;20250417211005.011543@localhost&gt;\r\n -&gt; X-Mailer: swaks v20240103.0 jetmore.org\/john\/code\/swaks\/\r\n -&gt; \r\n -&gt; This is a test message\r\n -&gt; \r\n -&gt; \r\n -&gt; .\r\n&lt;-  250 Mail OK queued as AQAAfwDnTiYNcQBoUAEAAA--.32S2\r\n -&gt; QUIT\r\n&lt;-  221 Bye\r\n=== Connection closed with remote host.<\/pre>\n<p><a href=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2025\/04\/2025041814044241.webp\"><img class=\"aligncenter size-full wp-image-2000\" data-original=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2025\/04\/2025041814044241.webp\"  alt=\"\" \/><\/a><\/p>\n<noscript><img loading=\"lazy\" decoding=\"async\" width=\"777\" height=\"410\" class=\"aligncenter size-full wp-image-2000\" src=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2025\/04\/2025041814044241.webp\" alt=\"\" \/><\/a><\/p><\/noscript>\n<section>\n<p style=\"text-align: center;\">\u90ae\u4ef6\u663e\u793a\u6548\u679c<\/p>\n<section>\n<section>\n<section>\n<h3><strong>\u542f\u7528TLS\/SSL\u52a0\u5bc6<\/strong><\/h3>\n<\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section>\u793a\u4f8b\u547d\u4ee4\u5982\u4e0b\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">swaks --to t1@mailabc.cn --from demo@mailabc.cn --server mail.mailabc.cn --auth LOGIN --auth-user \"demo@mailabc.cn\" --auth-password \"BiC9E7YjbdDI7TkH\" --tls --header \"Subject: Test2\" --body \"This is a TLS test message\"\r\n<\/pre>\n<section>\n<section>\n<section>\u9700\u8981\u6ce8\u610f\uff1aswaks\u91c7\u7528perl\u7f16\u5199\uff0c\u542f\u7528TLS\u9700\u8981\u4f9d\u8d56Net::SSLeay\u5e93\uff0c\u5b89\u88c5\u547d\u4ee4\u5982\u4e0b\uff08\u5982\u679c\u7cfb\u7edf\u4e0a\u6ca1\u6709cpan\uff0c\u53ef\u4ee5\u901a\u8fc7yum\u6216\u8005apt-get\u5b89\u88c5\uff09\uff1a<\/section>\n<\/section>\n<\/section>\n<section class=\"code-snippet__fix code-snippet__js\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">cpan install Net::SSLeay<\/pre>\n<section>\n<section>\n<section>\n<h3><strong>\u53d1\u9001\u5e26\u9644\u4ef6\u7684\u90ae\u4ef6<\/strong><\/h3>\n<\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section>\u53d1\u9001\u5355\u4e2a\u9644\u4ef6\uff0c\u793a\u4f8b\u547d\u4ee4\u5982\u4e0b\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">swaks --to t1@mailabc.cn --from demo@mailabc.cn --server mail.mailabc.cn --auth LOGIN --auth-user \"demo@mailabc.cn\" --auth-password \"BiC9E7YjbdDI7TkH\" --header \"Subject: Test3\" --body \"This is a attach test message\" --attach @\/tmp\/file.txt\r\n<\/pre>\n<p><a href=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2025\/04\/2025041814062428.webp\"><img class=\"aligncenter size-full wp-image-2001\" data-original=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2025\/04\/2025041814062428.webp\"  alt=\"\" \/><\/a><\/p>\n<noscript><img loading=\"lazy\" decoding=\"async\" width=\"776\" height=\"416\" class=\"aligncenter size-full wp-image-2001\" src=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2025\/04\/2025041814062428.webp\" alt=\"\" \/><\/a><\/p><\/noscript>\n<section>\n<p style=\"text-align: center;\">\u90ae\u4ef6\u663e\u793a\u6548\u679c<\/p>\n<section>\n<section>\n<section>\u53d1\u9001\u591a\u4e2a\u9644\u4ef6\uff0c\u793a\u4f8b\u547d\u4ee4\u5982\u4e0b\uff1a<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">swaks --to t1@mailabc.cn --from demo@mailabc.cn --server mail.mailabc.cn --auth LOGIN --auth-user \"demo@mailabc.cn\" --auth-password \"BiC9E7YjbdDI7TkH\" --tls --header \"Subject: HTML TEST\" --attach-type text\/html --attach-body \"&lt;html&gt;&lt;body&gt;&lt;h1&gt;This is a html test&lt;\/h1&gt;&lt;\/body&gt;&lt;\/html&gt;\"\r\n<\/pre>\n<p><a href=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2025\/04\/202504181406574.webp\"><img class=\"aligncenter size-full wp-image-2002\" data-original=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2025\/04\/202504181406574.webp\"  alt=\"\" \/><\/a><\/p>\n<noscript><img loading=\"lazy\" decoding=\"async\" width=\"781\" height=\"414\" class=\"aligncenter size-full wp-image-2002\" src=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2025\/04\/202504181406574.webp\" alt=\"\" \/><\/a><\/p><\/noscript>\n<section>\n<p style=\"text-align: center;\">\u90ae\u4ef6\u663e\u793a\u6548\u679c<\/p>\n<section>\n<section>\n<section>\n<h3><strong>\u57fa\u4e8eEML\u6587\u4ef6\u53d1\u9001\u90ae\u4ef6<\/strong><\/h3>\n<\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section>\u5047\u8bbe\u901a\u8fc7\u5176\u4ed6\u90ae\u4ef6\u5ba2\u6237\u7aef\u7ec4\u597d\u4e86\u4e00\u5c01\u90ae\u4ef6\u4fdd\u5b58\u4e3aeml\u683c\u5f0f\uff08\u90ae\u4ef6\u4fe1\u4f53\u7ec4\u4fe1\u6807\u51c6\u53ef\u4ee5\u53c2\u8003\u5f80\u671f\u6587\u7ae0\uff1a<a href=\"https:\/\/www.mailabc.cn\/blog\/2024\/04\/13\/%e9%82%ae%e4%bb%b6%e8%bf%90%e7%bb%b4%e8%bf%9b%e9%98%b6%ef%bc%9a%e4%b8%80%e6%96%87%e6%95%99%e4%bd%a0%e8%af%bb%e6%87%82%e9%82%ae%e4%bb%b6%e4%bf%a1%e4%bd%93\/\" target=\"_blank\" rel=\"noopener\">\u300a\u90ae\u4ef6\u8fd0\u7ef4\u8fdb\u9636\uff1a\u4e00\u6587\u6559\u4f60\u8bfb\u61c2\u90ae\u4ef6\u4fe1\u4f53\u300b<\/a>\uff09\uff0cswaks\u53ef\u4ee5\u5c06eml\u6587\u4ef6\u4f5c\u4e3aDATA\u6307\u4ee4\u5185\u5bb9\u8fdb\u884c\u53d1\u4fe1\u3002\u4e0b\u9762\u7ed9\u4e00\u4e2a\u793a\u4f8b\uff0c\u5c06\u5982\u4e0beml\u5185\u5bb9\u4fdd\u5b58\u5230\u6587\u4ef6test.eml\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Date: Thu, 17 Apr 2025 20:56:09 +0800\r\nFrom: \"demo\" &lt;demo@mailabc.cn&gt;\r\nTo: t1 &lt;t1@163.com&gt;\r\nSubject: =?GB2312?B?suLK1GVtbLei0MU=?=\r\nX-Priority: 3\r\nX-Has-Attach: no\r\nX-Mailer: Foxmail 7.2.25.375[cn]\r\nMime-Version: 1.0\r\nMessage-ID: &lt;202504171256097486540@mailabc.cn&gt;\r\nContent-Type: multipart\/alternative;\r\n  boundary=\"----=_001_NextPart683426000518_=----\"\r\nThis is a multi-part message in MIME format.\r\n------=_001_NextPart683426000518_=----\r\nContent-Type: text\/plain;\r\n  charset=\"GB2312\"\r\nContent-Transfer-Encoding: base64\r\n1eLKx9K7t+JIVE1MuPHKvbLiytTTyrz+oaMNCg==\r\n------=_001_NextPart683426000518_=----\r\nContent-Type: text\/html;\r\n  charset=\"GB2312\"\r\nContent-Transfer-Encoding: quoted-printable\r\n&lt;html&gt;&lt;head&gt;&lt;meta http-equiv=3D\"content-type\" content=3D\"text\/html; charse=\r\nt=3DGB2312\"&gt;&lt;style&gt;body { line-height: 1.5; }body { font-size: 14px; font-=\r\nfamily: \"Microsoft YaHei UI\"; color: rgb(0, 0, 0); line-height: 1.5; }&lt;\/st=\r\nyle&gt;&lt;\/head&gt;&lt;body&gt;=0A&lt;div&gt;&lt;font color=3D\"#ff0000\"&gt;&lt;span id=3D\"_FoxCURSOR\"&gt;&lt;=\r\n\/span&gt;=D5=E2=CA=C7=D2=BB=B7=E2HTML=B8=F1=CA=BD=B2=E2=CA=D4=D3=CA=BC=FE=A1=\r\n=A3&lt;\/font&gt;&lt;\/div&gt;=0A&lt;\/body&gt;&lt;\/html&gt;\r\n------=_001_NextPart683426000518_=------<\/pre>\n<p>\u793a\u4f8b\u547d\u4ee4\u5982\u4e0b\uff1a<\/p>\n<p>\u5176\u4e2d\u00a0&#8211;data &#8220;$(cat \/tmp\/test.eml)&#8221;\u00a0\u8868\u793a\u5c06\/tmp\/test.eml \u4f5c\u4e3aDATA\u6307\u4ee4\u7684\u5185\u5bb9\u53d1\u9001\u3002<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">swaks --to t1@mailabc.cn --from demo@mailabc.cn --server mail.mailabc.cn --auth LOGIN --auth-user \"demo@mailabc.cn\" --auth-password \"BiC9E7YjbdDI7TkH\" --tls --data \"$(cat \/tmp\/test.eml)\"\r\n<\/pre>\n<p>\u901a\u8fc7\u4e0a\u8ff0\u547d\u4ee4\uff0c\u5c06\/tmp\/test.eml\u539f\u59cb\u5185\u5bb9\u53d1\u7ed9\u4e86\u7528\u6237t1@mailabc.cn\u3002\u67e5\u770b\u8be5\u90ae\u4ef6\u53d1\u73b0\u4fe1\u5934\u4e2d\u7684\u6536\u4ef6\u4eba\u662ft1&lt;t1@163.com&gt;\uff0c\u8868\u660e\u901a\u8fc7\u8be5\u547d\u4ee4\u53d1\u4fe1\u4e0d\u4f1a\u6539\u53d8eml\u6587\u4ef6\u4e2d\u7684\u4fe1\u5934\u4fe1\u606f\u3002<strong>\u8fd9\u6b63\u662f\u53d1\u9001\u4f2a\u9020\u90ae\u4ef6\u7684\u65b9\u6cd5\u4e4b\u4e00\u3002<\/strong><\/p>\n<p><a href=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2025\/04\/2025041814084147.webp\"><img class=\"aligncenter size-full wp-image-2003\" data-original=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2025\/04\/2025041814084147.webp\"  alt=\"\" \/><\/a><\/p>\n<noscript><img loading=\"lazy\" decoding=\"async\" width=\"770\" height=\"391\" class=\"aligncenter size-full wp-image-2003\" src=\"https:\/\/www.mailabc.cn\/blog\/wp-content\/uploads\/2025\/04\/2025041814084147.webp\" alt=\"\" \/><\/a><\/p><\/noscript>\n<section>\n<p style=\"text-align: center;\">\u90ae\u4ef6\u663e\u793a\u6548\u679c<\/p>\n<section>\n<section>\n<section>\u5173\u4e8eswaks\u53d1\u4fe1\u793a\u4f8b\u5148\u63d0\u4f9b\u8fd9\u4e9b\uff0c\u5982\u679c\u8fd8\u9700\u8981\u4e86\u89e3\u66f4\u591a\u5173\u4e8eswaks\u7684\u547d\u4ee4\u7528\u6cd5\uff0c\u5efa\u8bae\u60a8\u67e5\u9605\u5e2e\u52a9\u6587\u6863\uff08\u4e0b\u8f7d\u7684tar.gz\u538b\u7f29\u5305\u4e2d\u5305\u542b\u5e2e\u52a9\u6587\u6863\uff09\u3002<strong>\u6700\u540e\uff0c\u611f\u5174\u8da3\u7684\u540c\u5b66\u53ef\u4ee5\u601d\u8003\u4e0b\u9762\u7684\u95ee\u9898\uff1a<\/strong>1.\u90ae\u4ef6\u7cfb\u7edf\u8be5\u5982\u4f55\u62d2\u7edd\u8fd9\u79cdMAIL FROM\u7528\u6237\u548c\u4fe1\u5934\u4e2d\u7528\u6237\u4e0d\u4e00\u81f4\u7684\u53d1\u4fe1\u5462\uff1f2.\u9488\u5bf9\u4e0a\u8ff0\u793a\u4f8b\uff0c\u542f\u7528SPF\u68c0\u67e5\u53ef\u4ee5\u963b\u65ad\u8fd9\u4e2a\u53d1\u4fe1\u5417\uff1f<\/p>\n<p>\u5982\u679c\u60f3\u4e86\u89e3\u7b54\u6848\u6216\u8fdb\u4e00\u6b65\u63a2\u8ba8\u8be5\u5de5\u5177\u7684\u7528\u6cd5\uff0c\u53ef\u4ee5\u5173\u6ce8\u516c\u4f17\u53f7\u7559\u8a00\u3002<\/p>\n<\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section>\n<section><\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section>\n<hr \/>\n<\/section>\n<\/section>\n<\/section>\n<section>\n<section>\n<section><\/section>\n<\/section>\n<\/section>\n<\/section>\n<section>\u53c2\u8003\u6765\u6e90\uff1a1. Github\u9879\u76ee\u4e3b\u9875\uff1a<a href=\"https:\/\/github.com\/jetmore\/swaks\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/github.com\/jetmore\/swaks<\/a>2. \u4f5c\u8005\u4e3b\u9875\uff1a<a href=\"https:\/\/jetmore.org\/john\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/jetmore.org\/john<\/a>3. Swaks\u4e0b\u8f7d\u5730\u5740\uff1a<a href=\"https:\/\/jetmore.org\/john\/code\/swaks\/files\/swaks-20240103.0.tar.gz\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/jetmore.org\/john\/code\/swaks\/files\/swaks-20240103.0.tar.gz<\/a><\/p>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Swaks\u4ecb\u7ecd Swaks\uff08Swiss Army Knife for SMTP\uff09\u662f\u4e00\u4e2a\u975e\u5e38\u5f3a\u5927\u7684\u547d\u4ee4\u884c\u5de5\u5177\uff08\u7531 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2006,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[143],"tags":[6,160],"class_list":["post-1999","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-143","tag-smtp","tag-swaks"],"_links":{"self":[{"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/posts\/1999","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/comments?post=1999"}],"version-history":[{"count":6,"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/posts\/1999\/revisions"}],"predecessor-version":[{"id":2120,"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/posts\/1999\/revisions\/2120"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/media\/2006"}],"wp:attachment":[{"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/media?parent=1999"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/categories?post=1999"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mailabc.cn\/blog\/wp-json\/wp\/v2\/tags?post=1999"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}