<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alikaravi.ir/index.php?action=history&amp;feed=atom&amp;title=Mail_Server_Test_ubuntu</id>
	<title>Mail Server Test ubuntu - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alikaravi.ir/index.php?action=history&amp;feed=atom&amp;title=Mail_Server_Test_ubuntu"/>
	<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;action=history"/>
	<updated>2026-08-25T06:00:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=192&amp;oldid=prev</id>
		<title>Karavi at 11:54, 16 August 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=192&amp;oldid=prev"/>
		<updated>2026-08-16T11:54:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:54, 16 August 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l34&quot;&gt;Line 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== روش اول: اسکریپت test-smtp.sh ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== روش اول: اسکریپت test-smtp.sh ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;این اسکریپت با استفاده از قابلیت &amp;lt;code&amp;gt;/dev/tcp&amp;lt;/code&amp;gt; هستهٔ Bash، اتصال TCP به همهٔ پورت‌های استاندارد میل‌سرور را بررسی می‌کند. &#039;&#039;&#039;نیاز به نصب هیچ ابزار اضافه‌ای ندارد.&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;این اسکریپت با استفاده از قابلیت &amp;lt;code&amp;gt;/dev/tcp&amp;lt;/code&amp;gt; هستهٔ Bash، اتصال TCP به همهٔ پورت‌های استاندارد میل‌سرور را بررسی می‌کند&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. آدرس IP دامنه نیز به‌صورت خودکار resolve و در خروجی نمایش داده می‌شود&lt;/ins&gt;. &#039;&#039;&#039;نیاز به نصب هیچ ابزار اضافه‌ای ندارد.&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== نصب ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== نصب ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l54&quot;&gt;Line 54:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 54:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# پورت‌های استاندارد میل؛ می‌توانید با آرگومان دوم لیست سفارشی بدهید&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# پورت‌های استاندارد میل؛ می‌توانید با آرگومان دوم لیست سفارشی بدهید&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;PORTS=&amp;quot;${2:-25 465 587 110 995 143 993}&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;PORTS=&amp;quot;${2:-25 465 587 110 995 143 993}&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# یافتن آدرس IP دامنه&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;IP=$(getent hosts &quot;$SERVER&quot; | awk &#039;{print $1}&#039; | head -n1)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[ -z &quot;$IP&quot; ] &amp;amp;&amp;amp; IP=&quot;(resolve failed)&quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;declare -A NAMES=(&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;declare -A NAMES=(&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l65&quot;&gt;Line 65:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 69:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;echo &quot;=== Testing mail server: $SERVER ===&quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;echo &quot;=== Testing mail server: $SERVER &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;($IP) &lt;/ins&gt;===&quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;echo &amp;quot;Port        Service          Status&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;echo &amp;quot;Port        Service          Status&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;echo &amp;quot;-----------------------------------&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;echo &amp;quot;-----------------------------------&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l99&quot;&gt;Line 99:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 103:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== خروجی نمونه ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== خروجی نمونه ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Testing mail server: mail.example.com ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Testing mail server: mail.example.com &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(192.0.2.10) &lt;/ins&gt;===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Port        Service          Status&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Port        Service          Status&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----------------------------------&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-----------------------------------&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l110&quot;&gt;Line 110:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 114:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;993         IMAPS            OPEN&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;993         IMAPS            OPEN&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Note|آدرس IP در پرانتز کنار نام سرور نمایش داده می‌شود. اگر resolve ناموفق باشد، عبارت &amp;lt;code&gt;(resolve failed)&amp;lt;/code&gt; چاپ می‌شود.}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Note|این اسکریپت فقط اتصال TCP را بررسی می‌کند و پروتکل (مثلاً پاسخ SMTP به &amp;lt;code&amp;gt;EHLO&amp;lt;/code&amp;gt;) را تست نمی‌کند. برای تست کامل پروتکل از روش دوم (swaks) استفاده کنید.}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Note|این اسکریپت فقط اتصال TCP را بررسی می‌کند و پروتکل (مثلاً پاسخ SMTP به &amp;lt;code&amp;gt;EHLO&amp;lt;/code&amp;gt;) را تست نمی‌کند. برای تست کامل پروتکل از روش دوم (swaks) استفاده کنید.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=191&amp;oldid=prev</id>
		<title>Karavi at 11:43, 16 August 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=191&amp;oldid=prev"/>
		<updated>2026-08-16T11:43:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;amp;diff=191&amp;amp;oldid=190&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=190&amp;oldid=prev</id>
		<title>Karavi at 11:42, 16 August 2026</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=190&amp;oldid=prev"/>
		<updated>2026-08-16T11:42:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;amp;diff=190&amp;amp;oldid=189&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
	<entry>
		<id>https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=189&amp;oldid=prev</id>
		<title>Karavi: Created page with &quot;# تست اتصال به میل‌سرور در Ubuntu  &gt; **این صفحه بخشی از مستندات ابزارهای خط فرمان است.** دو روش برای تست اتصال به میل‌سرور (SMTP/IMAP/POP3) در Ubuntu توضیح داده شده است: &gt; ۱. اسکریپت سبک **test-smtp.sh** (بدون نیاز به نصب ابزار اضافه) &gt; ۲. ابزار قدرتمند **swaks** (SMTP Swiss Army Knife)  ---  ## فهرست مطالب  - [...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.alikaravi.ir/index.php?title=Mail_Server_Test_ubuntu&amp;diff=189&amp;oldid=prev"/>
		<updated>2026-08-16T11:40:49Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;# تست اتصال به میل‌سرور در Ubuntu  &amp;gt; **این صفحه بخشی از مستندات ابزارهای خط فرمان است.** دو روش برای تست اتصال به میل‌سرور (SMTP/IMAP/POP3) در Ubuntu توضیح داده شده است: &amp;gt; ۱. اسکریپت سبک **test-smtp.sh** (بدون نیاز به نصب ابزار اضافه) &amp;gt; ۲. ابزار قدرتمند **swaks** (SMTP Swiss Army Knife)  ---  ## فهرست مطالب  - [...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;# تست اتصال به میل‌سرور در Ubuntu&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **این صفحه بخشی از مستندات ابزارهای خط فرمان است.** دو روش برای تست اتصال به میل‌سرور (SMTP/IMAP/POP3) در Ubuntu توضیح داده شده است:&lt;br /&gt;
&amp;gt; ۱. اسکریپت سبک **test-smtp.sh** (بدون نیاز به نصب ابزار اضافه)&lt;br /&gt;
&amp;gt; ۲. ابزار قدرتمند **swaks** (SMTP Swiss Army Knife)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## فهرست مطالب&lt;br /&gt;
&lt;br /&gt;
- [پیش‌نیازها](#پیش‌نیازها)&lt;br /&gt;
- [روش اول: اسکریپت test-smtp.sh](#روش-اول-اسکریپت-test-smtpsh)&lt;br /&gt;
  - [نصب](#نصب)&lt;br /&gt;
  - [نحوه استفاده](#نحوه-استفاده)&lt;br /&gt;
  - [خروجی نمونه](#خروجی-نمونه)&lt;br /&gt;
- [روش دوم: ابزار swaks](#روش-دوم-ابزار-swaks)&lt;br /&gt;
  - [نصب](#نصب-1)&lt;br /&gt;
  - [استفاده پایه](#استفاده-پایه)&lt;br /&gt;
  - [مثال‌های پرکاربرد](#مثالهای-پرکاربرد)&lt;br /&gt;
- [مقایسه دو روش](#مقایسه-دو-روش)&lt;br /&gt;
- [عیب‌یابی](#عیبیابی)&lt;br /&gt;
- [منابع](#منابع)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## پیش‌نیازها&lt;br /&gt;
&lt;br /&gt;
- سیستم‌عامل **Ubuntu** (نسخه ۲۰.۰۴ یا جدیدتر توصیه می‌شود)&lt;br /&gt;
- دسترسی کاربر با مجوز `sudo`&lt;br /&gt;
- نام میزبان یا آدرس IP میل‌سرور مقصد&lt;br /&gt;
- باز بودن پورت‌های خروجی در فایروال سمت کلاینت (در صورت وجود)&lt;br /&gt;
&lt;br /&gt;
| پورت | سرویس | پروتکل | رمزنگاری |&lt;br /&gt;
|------|-------|--------|----------|&lt;br /&gt;
| ۲۵ | SMTP | ارسال | بدون رمزنگاری (یا STARTTLS) |&lt;br /&gt;
| ۴۶۵ | SMTPS | ارسال | SSL/TLS |&lt;br /&gt;
| ۵۸۷ | Submission | ارسال | STARTTLS |&lt;br /&gt;
| ۱۱۰ | POP3 | دریافت | بدون رمزنگاری |&lt;br /&gt;
| ۹۹۵ | POP3S | دریافت | SSL/TLS |&lt;br /&gt;
| ۱۴۳ | IMAP | دریافت | بدون رمزنگاری |&lt;br /&gt;
| ۹۹۳ | IMAPS | دریافت | SSL/TLS |&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## روش اول: اسکریپت test-smtp.sh&lt;br /&gt;
&lt;br /&gt;
این اسکریپت با استفاده از قابلیت `/dev/tcp` هستهٔ Bash، اتصال TCP به همهٔ پورت‌های استاندارد میل‌سرور را بررسی می‌کند. **نیاز به نصب هیچ ابزار اضافه‌ای ندارد.**&lt;br /&gt;
&lt;br /&gt;
### نصب&lt;br /&gt;
&lt;br /&gt;
فایل را با نام `test-smtp.sh` ایجاد کنید:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
nano test-smtp.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
محتوای زیر را در آن قرار دهید:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# test-smtp.sh — بررسی اتصال به پورت‌های میل‌سرور&lt;br /&gt;
# استفاده: ./test-smtp.sh [سرور] [لیست پورت‌ها]&lt;br /&gt;
&lt;br /&gt;
SERVER=&amp;quot;${1:-smtp.example.com}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# پورت‌های استاندارد میل؛ می‌توانید با آرگومان دوم لیست سفارشی بدهید&lt;br /&gt;
PORTS=&amp;quot;${2:-25 465 587 110 995 143 993}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
declare -A NAMES=(&lt;br /&gt;
  [25]=&amp;quot;SMTP&amp;quot;&lt;br /&gt;
  [465]=&amp;quot;SMTPS&amp;quot;&lt;br /&gt;
  [587]=&amp;quot;Submission&amp;quot;&lt;br /&gt;
  [110]=&amp;quot;POP3&amp;quot;&lt;br /&gt;
  [995]=&amp;quot;POP3S&amp;quot;&lt;br /&gt;
  [143]=&amp;quot;IMAP&amp;quot;&lt;br /&gt;
  [993]=&amp;quot;IMAPS&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== Testing mail server: $SERVER ===&amp;quot;&lt;br /&gt;
echo &amp;quot;Port        Service          Status&amp;quot;&lt;br /&gt;
echo &amp;quot;-----------------------------------&amp;quot;&lt;br /&gt;
&lt;br /&gt;
for PORT in $PORTS; do&lt;br /&gt;
  if timeout 5 bash -c &amp;quot;echo &amp;gt; /dev/tcp/$SERVER/$PORT&amp;quot; 2&amp;gt;/dev/null; then&lt;br /&gt;
    STATUS=&amp;quot;OPEN&amp;quot;&lt;br /&gt;
  else&lt;br /&gt;
    STATUS=&amp;quot;CLOSED/FILTERED&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
  printf &amp;quot;%-10s %-16s %s\n&amp;quot; &amp;quot;$PORT&amp;quot; &amp;quot;${NAMES[$PORT]:-Unknown}&amp;quot; &amp;quot;$STATUS&amp;quot;&lt;br /&gt;
done&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
فایل را اجرایی کنید:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
chmod +x test-smtp.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### نحوه استفاده&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
# تست همهٔ پورت‌های استاندارد&lt;br /&gt;
./test-smtp.sh mail.example.com&lt;br /&gt;
&lt;br /&gt;
# تست پورت‌های دلخواه (فقط SMTP)&lt;br /&gt;
./test-smtp.sh mail.example.com &amp;quot;25 465 587&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# اسکن یک بازهٔ پورت&lt;br /&gt;
./test-smtp.sh mail.example.com &amp;quot;$(seq 1 100)&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### خروجی نمونه&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
=== Testing mail server: mail.example.com ===&lt;br /&gt;
Port        Service          Status&lt;br /&gt;
-----------------------------------&lt;br /&gt;
25          SMTP             OPEN&lt;br /&gt;
465         SMTPS            OPEN&lt;br /&gt;
587         Submission       CLOSED/FILTERED&lt;br /&gt;
110         POP3             CLOSED/FILTERED&lt;br /&gt;
995         POP3S            CLOSED/FILTERED&lt;br /&gt;
143         IMAP             OPEN&lt;br /&gt;
993         IMAPS            OPEN&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **نکته:** این اسکریپت فقط اتصال TCP را بررسی می‌کند و پروتکل (مثلاً پاسخ SMTP به `EHLO`) را تست نمی‌کند. برای تست کامل پروتکل از روش دوم (swaks) استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **هشدار:** در صورت بسته بودن پورت، وضعیت `CLOSED/FILTERED` نشان داده می‌شود. تفاوت بین «بسته» و «فیلترشده» با این روش قابل تشخیص نیست.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## روش دوم: ابزار swaks&lt;br /&gt;
&lt;br /&gt;
**swaks** (SMTP Swiss Army Knife) یک ابزار خط فرمان قدرتمند برای تست کامل و عیب‌یابی سرورهای SMTP است. با آن می‌توانید ایمیل تستی بفرستید، احراز هویت را بررسی کنید، TLS را تست کنید و جزئیات کامل گفتگو با سرور را ببینید.&lt;br /&gt;
&lt;br /&gt;
### نصب&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install swaks&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
بررسی نصب:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --version&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### استفاده پایه&lt;br /&gt;
&lt;br /&gt;
ساده‌ترین شکل — ارسال یک ایمیل تستی به سرور:&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --to recipient@example.com --server mail.example.com&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **نکته:** در صورت عدم تعیین فرستنده، swaks به‌صورت پیش‌فرض از کاربر جاری سیستم استفاده می‌کند. با `--from` می‌توانید آن را مشخص کنید.&lt;br /&gt;
&lt;br /&gt;
### مثال‌های پرکاربرد&lt;br /&gt;
&lt;br /&gt;
**۱. ارسال ایمیل تستی کامل با احراز هویت و TLS (پورت ۵۸۷):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks \&lt;br /&gt;
  --from sender@example.com \&lt;br /&gt;
  --to recipient@example.com \&lt;br /&gt;
  --server mail.example.com \&lt;br /&gt;
  --port 587 \&lt;br /&gt;
  --tls \&lt;br /&gt;
  --auth LOGIN \&lt;br /&gt;
  --auth-user sender@example.com \&lt;br /&gt;
  --auth-password &amp;#039;YourPassword&amp;#039;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۲. تست فقط اتصال و گفتگوی اولیه (بدون ارسال واقعی):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --server mail.example.com --quit-after EHLO&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۳. نمایش جزئیات کامل گفتگو (مفید برای عیب‌یابی):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --to test@example.com --server mail.example.com -v&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۴. تست سرور بدون رمزنگاری (پورت ۲۵):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --to test@example.com --server mail.example.com --port 25 --protocol SMTP&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۵. تست SSL مستقیم (پورت ۴۶۵):**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks --to test@example.com --server mail.example.com --port 465 --tls&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**۶. ارسال ایمیل با محتوای سفارشی:**&lt;br /&gt;
&lt;br /&gt;
```bash&lt;br /&gt;
swaks \&lt;br /&gt;
  --to test@example.com \&lt;br /&gt;
  --server mail.example.com \&lt;br /&gt;
  --header &amp;quot;Subject: Test Mail&amp;quot; \&lt;br /&gt;
  --body &amp;quot;This is a test email sent by swaks.&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
### خروجی نمونه&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
=== Trying mail.example.com:587...&lt;br /&gt;
=== Connected to mail.example.com.&lt;br /&gt;
&amp;lt;-  220 mail.example.com ESMTP Postfix&lt;br /&gt;
 -&amp;gt; EHLO localhost&lt;br /&gt;
&amp;lt;-  250-mail.example.com&lt;br /&gt;
&amp;lt;-  250-PIPELINING&lt;br /&gt;
&amp;lt;-  250-SIZE 10240000&lt;br /&gt;
&amp;lt;-  250-STARTTLS&lt;br /&gt;
&amp;lt;-  250-AUTH PLAIN LOGIN&lt;br /&gt;
&amp;lt;-  250-ENHANCEDSTATUSCODES&lt;br /&gt;
&amp;lt;-  250 8BITMIME&lt;br /&gt;
 -&amp;gt; STARTTLS&lt;br /&gt;
&amp;lt;-  220 2.0.0 Ready to start TLS&lt;br /&gt;
...&lt;br /&gt;
 -&amp;gt; QUIT&lt;br /&gt;
&amp;lt;-  221 2.0.0 Bye&lt;br /&gt;
=== Connection closed with remote host.&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
&amp;gt; **نکته:** کدهای پاسخ SMTP را بشناسید: `250` یعنی موفق، `550` یعنی گیرنده رد شد، `535` یعنی احراز هویت ناموفق، `554` یعنی تراکنش رد شد.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## مقایسه دو روش&lt;br /&gt;
&lt;br /&gt;
| ویژگی | test-smtp.sh | swaks |&lt;br /&gt;
|-------|--------------|-------|&lt;br /&gt;
| نیاز به نصب | ❌ خیر | ✅ بله (`apt install swaks`) |&lt;br /&gt;
| تست اتصال TCP به چند پورت | ✅ بله | ⚠️ فقط یک پورت در هر بار |&lt;br /&gt;
| تست کامل پروتکل SMTP | ❌ خیر | ✅ بله |&lt;br /&gt;
| ارسال ایمیل واقعی | ❌ خیر | ✅ بله |&lt;br /&gt;
| تست احراز هویت (AUTH) | ❌ خیر | ✅ بله |&lt;br /&gt;
| تست TLS/STARTTLS | ❌ خیر | ✅ بله |&lt;br /&gt;
| خروجی جزئیات گفتگو | ❌ خیر | ✅ بله (`-v`) |&lt;br /&gt;
| مناسب برای | بررسی سریع باز بودن پورت‌ها | عیب‌یابی کامل و تست ارسال |&lt;br /&gt;
&lt;br /&gt;
**پیشنهاد:** برای بررسی سریع باز بودن همهٔ پورت‌ها از `test-smtp.sh` و برای عیب‌یابی عمیق و تست ارسال واقعی از `swaks` استفاده کنید.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## عیب‌یابی&lt;br /&gt;
&lt;br /&gt;
| مشکل | راه‌حل |&lt;br /&gt;
|------|--------|&lt;br /&gt;
| همهٔ پورت‌ها CLOSED هستند | فایروال سمت سرور (مثلاً `ufw`) یا ISP را بررسی کنید: `sudo ufw status` |&lt;br /&gt;
| نام سرور resolve نمی‌شود | تست DNS: `dig mail.example.com` یا `nslookup mail.example.com` |&lt;br /&gt;
| خطای احراز هویت (۵۳۵) | نام کاربری/رمز عبور را بررسی کنید؛ در Gmail باید از App Password استفاده کنید |&lt;br /&gt;
| خطای TLS | مطمئن شوید پورت درست است؛ پورت ۴۶۵ برای SSL مستقیم و ۵۸۷ برای STARTTLS است |&lt;br /&gt;
| پاسخ `550` هنگام ارسال | گیرنده یا دامنهٔ فرستنده تأیید نشده؛ SPF/DKIM سرور را بررسی کنید |&lt;br /&gt;
| `Connection timed out` | فایروال کلاینت یا سرور؛ دسترسی به پورت خروجی را تست کنید |&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
## منابع&lt;br /&gt;
&lt;br /&gt;
- مستندات رسمی swaks: https://github.com/jetmore/swaks&lt;br /&gt;
- راهنمای Ubuntu برای نصب پکیج‌ها: https://help.ubuntu.com/community/AptGet/Howto&lt;br /&gt;
- صفحهٔ SMTP در ویکی‌پدیا: https://en.wikipedia.org/wiki/SMTP&lt;/div&gt;</summary>
		<author><name>Karavi</name></author>
	</entry>
</feed>