مقدمه
در بسیاری از پروژههای لینوکسی، برنامهها و سرویسها نیاز دارند ایمیلهایی مانند اعلانهای سیستمی، گزارش خطا، نسخههای پشتیبان، اطلاعیههای مانیتورینگ یا پیامهای تأیید را ارسال کنند. برای این منظور نیازی به راهاندازی یک سرور ایمیل کامل نیست و استفاده از یک SMTP Server فقط برای ارسال ایمیل (Send-Only SMTP Server) گزینهای سبکتر، سریعتر و سادهتر محسوب میشود.
Postfix یکی از محبوبترین Mail Transfer Agent (MTA)های لینوکس است که امنیت بالا، مصرف منابع کم و پیکربندی سادهای دارد. در این آموزش، Postfix را به گونهای پیکربندی میکنیم که تنها برنامههای محلی سرور قادر به ارسال ایمیل باشند و هیچ اتصال SMTP خارجی پذیرفته نشود.
همچنین برای افزایش امنیت، از گواهینامه رایگان Let’s Encrypt جهت رمزنگاری ارتباط SMTP استفاده خواهیم کرد و در پایان نیز نکات مهمی برای جلوگیری از اسپم شدن ایمیلها بررسی میکنیم.
در پایان این آموزش، یک سرور Send-Only SMTP ایمن و آماده استفاده روی Ubuntu 24.04 یا Ubuntu 26.04 خواهید داشت.
پیشنیازها
قبل از شروع این آموزش، موارد زیر باید آماده باشند:
- یک سرور با Ubuntu 24.04 LTS یا Ubuntu 26.04
- دسترسی به کاربر دارای مجوز sudo
- یک دامنه ثبتشده (مانند
example.com) - تنظیم رکورد A دامنه به IP سرور
- تنظیم صحیح Hostname سرور
برای مشاهده Hostname فعلی:
hostnamectl
در صورت نیاز میتوانید آن را تغییر دهید:
sudo hostnamectl set-hostname mail.example.com
سپس فایل hosts را نیز ویرایش کنید:
sudo nano /etc/hosts
نمونه:
127.0.0.1 localhost
127.0.1.1 mail.example.com mail
در پایان سیستم را یک بار ریستارت یا سرویس hostname را مجدداً بارگذاری کنید.
مرحله ۱ — بهروزرسانی سیستم و نصب Postfix
ابتدا لیست بستهها را بهروزرسانی کنید:
sudo apt update
sudo apt upgrade -y
سپس Postfix و ابزار Mailutils را نصب کنید:
sudo apt install postfix mailutils -y
در هنگام نصب، پنجره پیکربندی Postfix نمایش داده میشود.
در قسمت General type of mail configuration گزینه زیر را انتخاب کنید:
Internet Site
سپس در قسمت System mail name نام دامنه خود را وارد کنید:
example.com
اگر این پنجره نمایش داده نشد، هر زمان میتوانید دوباره آن را اجرا کنید:
sudo dpkg-reconfigure postfix
پس از پایان نصب، وضعیت سرویس را بررسی کنید:
systemctl status postfix
در صورت اجرای صحیح، خروجی باید مشابه زیر باشد:
Active: active (running)
اکنون Postfix روی سیستم نصب شده و آماده پیکربندی است.
مرحله ۲ — بررسی فایل پیکربندی Postfix
تمام تنظیمات اصلی Postfix داخل فایل زیر قرار دارد:
/etc/postfix/main.cf
قبل از هرگونه تغییر، بهتر است از فایل نسخه پشتیبان تهیه کنید:
sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
سپس فایل را باز کنید:
sudo nano /etc/postfix/main.cf
در ادامه آموزش، تنظیمات مختلف این فایل را مرحلهبهمرحله تغییر خواهیم داد تا Postfix تنها بهعنوان یک سرور ارسال ایمیل عمل کند.
مرحله ۳ — پیکربندی Postfix برای ارسال ایمیل فقط از سرور (Send-Only)
بهصورت پیشفرض، Postfix میتواند برای دریافت ایمیل نیز پیکربندی شود؛ اما در این آموزش هدف ما ایجاد یک SMTP Server فقط برای ارسال ایمیل است. بنابراین باید Postfix را طوری تنظیم کنیم که تنها درخواستهای محلی (localhost) را بپذیرد و هیچ اتصال SMTP از خارج سرور قبول نشود.
ابتدا فایل پیکربندی را باز کنید:
sudo nano /etc/postfix/main.cf
محدود کردن رابطهای شبکه
دستور زیر را پیدا کنید:
inet_interfaces = all
آن را به مقدار زیر تغییر دهید:
inet_interfaces = loopback-only
یا در برخی نسخههای جدید Postfix میتوانید از مقدار زیر استفاده کنید:
inet_interfaces = localhost
با این تنظیم، Postfix فقط روی رابط Loopback گوش میدهد و هیچ اتصال SMTP از شبکه یا اینترنت پذیرفته نخواهد شد.
تنظیم دامنههای محلی
سپس گزینه mydestination را پیدا کنید.
ممکن است مشابه نمونه زیر باشد:
mydestination = $myhostname, example.com, localhost.localdomain, localhost
آن را به مقدار زیر تغییر دهید:
mydestination = localhost.$mydomain, localhost, $myhostname
این تنظیم باعث میشود Postfix فقط ایمیلهای مربوط به میزبان محلی را پردازش کند.
تنظیم نام میزبان
در ادامه، مقدار myhostname را بررسی کنید.
اگر وجود ندارد، آن را اضافه کنید:
myhostname = mail.example.com
تنظیم دامنه اصلی
در صورت نیاز مقدار mydomain را نیز مشخص کنید:
mydomain = example.com
تعیین فرستنده پیشفرض
برای اینکه ایمیلهای ارسالی از دامنه اصلی شما ارسال شوند، مقدار زیر را بررسی کنید:
myorigin = $mydomain
در صورت نبودن این گزینه، آن را به انتهای فایل اضافه کنید.
استفاده از نام دامنه اصلی (اختیاری)
اگر سرور شما روی یک زیردامنه مانند mail.example.com قرار دارد اما میخواهید گیرنده ایمیل را از آدرس example.com مشاهده کند، میتوانید تنظیم زیر را اضافه کنید:
masquerade_domains = example.com
این گزینه باعث حذف زیردامنه از آدرس فرستنده میشود.
ذخیره تغییرات
پس از اعمال تنظیمات، فایل را ذخیره کرده و از ویرایشگر خارج شوید.
اگر از Nano استفاده میکنید:
- کلید Ctrl + O را فشار دهید.
- کلید Enter را بزنید.
- سپس Ctrl + X را فشار دهید.
در پایان این مرحله، Postfix فقط بهعنوان یک Send-Only SMTP Server عمل خواهد کرد و امکان دریافت اتصال SMTP از خارج سرور را نخواهد داشت.
مرحله ۴ — راهاندازی مجدد Postfix و ارسال اولین ایمیل آزمایشی
پس از اعمال تغییرات در فایل main.cf، باید سرویس Postfix را مجدداً راهاندازی کنید تا تنظیمات جدید اعمال شوند.
راهاندازی مجدد سرویس
دستور زیر را اجرا کنید:
sudo systemctl restart postfix
اگر بدون خطا اجرا شد، یعنی تنظیمات فایل پیکربندی از نظر نحوی صحیح هستند.
فعال کردن اجرای خودکار هنگام بوت
برای اینکه Postfix پس از هر بار راهاندازی مجدد سرور بهصورت خودکار اجرا شود، دستور زیر را وارد کنید:
sudo systemctl enable postfix
بررسی وضعیت سرویس
اکنون وضعیت سرویس را بررسی کنید:
sudo systemctl status postfix
خروجی باید مشابه زیر باشد:
● postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled)
Active: active (running)
اگر وضعیت Active: active (running) نمایش داده شود، Postfix بهدرستی در حال اجرا است.
بررسی صحت فایل پیکربندی
قبل از ارسال ایمیل، بهتر است تنظیمات Postfix را بررسی کنید.
برای نمایش تنظیمات فعال، دستور زیر را اجرا کنید:
postconf
برای مشاهده فقط گزینههایی که تغییر دادهاید:
postconf -n
نمونه خروجی:
inet_interfaces = loopback-only
mydestination = localhost.$mydomain, localhost, $myhostname
myhostname = mail.example.com
myorigin = $mydomain
اگر مقادیر نمایش دادهشده با تنظیمات شما مطابقت داشته باشند، میتوانید مرحله بعد را انجام دهید.
ارسال اولین ایمیل آزمایشی
اکنون با استفاده از ابزار mail یک ایمیل آزمایشی ارسال کنید:
echo "This is a test email sent from Postfix." | mail -s "Postfix Test" you@example.com
به جای you@example.com آدرس ایمیل واقعی خود را وارد کنید.
نمونه:
echo "SMTP test from Ubuntu Server" | mail -s "Postfix Test" myname@gmail.com
بررسی صندوق ورودی
چند دقیقه صبر کنید و سپس صندوق ورودی ایمیل خود را بررسی کنید.
اگر ایمیل را مشاهده نکردید:
- پوشه Spam یا Junk را نیز بررسی کنید.
- در این مرحله طبیعی است که برخی سرویسهای ایمیل، پیام را بهعنوان Spam تشخیص دهند؛ زیرا هنوز TLS، SPF، DKIM و DMARC را پیکربندی نکردهایم.
در مراحل بعدی این موارد را اضافه خواهیم کرد تا اعتبار ایمیلهای ارسالی افزایش یابد.
بررسی صف ایمیلها
اگر ایمیل ارسال نشد، ابتدا صف Postfix را بررسی کنید:
mailq
یا:
postqueue -p
اگر صف خالی باشد، خروجی مشابه زیر خواهد بود:
Mail queue is empty
بررسی لاگها
در صورت بروز مشکل، لاگهای Postfix بهترین منبع برای عیبیابی هستند:
sudo journalctl -u postfix -f
یا:
sudo tail -f /var/log/mail.log
نکته: در Ubuntu 24.04 و نسخههای جدیدتر، اگر فایل
/var/log/mail.logوجود نداشته باشد، معمولاً لاگها از طریق systemd-journald مدیریت میشوند و دستورjournalctlروش پیشنهادی برای مشاهده آنها است.
در پایان این مرحله، از اجرای صحیح Postfix و امکان ارسال ایمیل اطمینان حاصل کردهاید.
مرحله ۵ — فوروارد کردن ایمیلهای سیستمی به آدرس ایمیل شخصی
سیستمعامل لینوکس و بسیاری از سرویسها، پیامهای مهمی مانند خطاها، هشدارهای امنیتی، گزارش کرانجابها (Cron Jobs) و اعلانهای مدیریتی را برای کاربر root ارسال میکنند. اگر این ایمیلها به یک آدرس واقعی فوروارد نشوند، ممکن است هرگز از آنها مطلع نشوید.
در این مرحله، ایمیلهای ارسالشده به کاربر root را به آدرس ایمیل شخصی خود هدایت میکنید.
ویرایش فایل aliases
فایل aliases را باز کنید:
sudo nano /etc/aliases
بهصورت پیشفرض، محتوای فایل مشابه زیر است:
# See man 5 aliases for format
postmaster: root
در انتهای فایل، خط زیر را اضافه کنید:
root: your-email@example.com
بهجای your-email@example.com آدرس ایمیل واقعی خود را وارد کنید.
نمونه:
root: admin@example.com
ذخیره تغییرات
پس از پایان ویرایش، فایل را ذخیره کنید.
اگر از Nano استفاده میکنید:
- Ctrl + O
- Enter
- Ctrl + X
بروزرسانی پایگاه داده Aliasها
پس از هر بار ویرایش فایل aliases باید پایگاه داده آن را بازسازی کنید:
sudo newaliases
اگر دستور بدون خطا اجرا شود، تنظیمات جدید فعال خواهند شد.
آزمایش فوروارد ایمیل
اکنون یک ایمیل آزمایشی برای کاربر root ارسال کنید:
echo "Root mail forwarding test" | mail -s "Postfix Alias Test" root
چند دقیقه بعد باید این پیام را در صندوق ورودی ایمیلی که در فایل aliases مشخص کردهاید دریافت کنید.
بررسی صف ایمیل
اگر ایمیل دریافت نشد، ابتدا صف Postfix را بررسی کنید:
mailq
یا:
postqueue -p
در صورت خالی بودن صف، خروجی مشابه زیر خواهد بود:
Mail queue is empty
بررسی لاگهای ارسال
برای مشاهده فرآیند ارسال ایمیل بهصورت زنده، از دستور زیر استفاده کنید:
sudo journalctl -u postfix -f
در برخی سیستمها نیز میتوانید از دستور زیر استفاده کنید:
sudo tail -f /var/log/mail.log
اگر ایمیل با موفقیت ارسال شود، پیامهایی مشابه موارد زیر مشاهده خواهید کرد:
status=sent
چرا این مرحله مهم است؟
بسیاری از ابزارهای لینوکسی مانند:
- Cron
- Logrotate
- Fail2Ban
- AIDE
- Monit
- سیستمهای مانیتورینگ
- اسکریپتهای بکاپ
اعلانهای خود را به کاربر root ارسال میکنند. با فوروارد کردن این ایمیلها به آدرس شخصی خود، میتوانید از بروز خطاها، هشدارهای امنیتی و گزارشهای مهم سرور در سریعترین زمان ممکن مطلع شوید.
در پایان این مرحله، اعلانهای سیستمی سرور بهصورت خودکار به ایمیل شما ارسال خواهند شد.
مرحله ۶ — دریافت گواهینامه SSL رایگان از Let’s Encrypt
در این مرحله، یک گواهینامه TLS/SSL رایگان از Let’s Encrypt دریافت میکنید تا ارتباط SMTP رمزنگاری شود. رمزنگاری ایمیلهای خروجی علاوه بر افزایش امنیت، اعتبار پیامهای ارسالی را نیز نزد سرویسهایی مانند Gmail، Outlook و Yahoo افزایش میدهد.
پیشنیاز
قبل از ادامه، مطمئن شوید:
- دامنه شما به IP سرور اشاره میکند.
- پورت 80 از طریق فایروال باز است.
- دامنه از اینترنت قابل دسترس است.
نصب Certbot
ابتدا فهرست بستهها را بهروزرسانی کنید:
sudo apt update
سپس Certbot را نصب کنید:
sudo apt install certbot -y
بررسی نسخه نصبشده:
certbot --version
نمونه خروجی:
certbot 3.x.x
باز کردن پورت HTTP
اگر از UFW استفاده میکنید، پورت 80 را باز کنید:
sudo ufw allow 80/tcp
بررسی قوانین فایروال:
sudo ufw status
نمونه خروجی:
80/tcp ALLOW Anywhere
دریافت گواهینامه
اگر هیچ وبسروری مانند Nginx یا Apache روی سرور اجرا نمیشود، دستور زیر را اجرا کنید:
sudo certbot certonly \
--standalone \
--key-type ecdsa \
--agree-tos \
--email admin@example.com \
-d mail.example.com
پارامترها:
--standaloneاجرای یک وبسرور موقت برای تأیید مالکیت دامنه--key-type ecdsaتولید کلید مدرن و سریعتر ECDSA--agree-tosپذیرش قوانین Let’s Encrypt--emailایمیل مدیر سرور-dدامنه موردنظر
اگر نسخه Certbot شما از ECDSA پشتیبانی نکند، میتوانید از کلید RSA استفاده کنید:
sudo certbot certonly \
--standalone \
--key-type rsa \
--agree-tos \
--email admin@example.com \
-d mail.example.com
بررسی دریافت گواهینامه
در صورت موفقیت، پیامی مشابه زیر مشاهده خواهید کرد:
Successfully received certificate.
همچنین فایلهای گواهینامه در مسیر زیر ذخیره میشوند:
/etc/letsencrypt/live/mail.example.com/
بررسی فایلهای گواهینامه
برای مشاهده فایلها:
sudo ls -l /etc/letsencrypt/live/mail.example.com/
خروجی مشابه زیر خواهد بود:
cert.pem
chain.pem
fullchain.pem
privkey.pem
مهمترین فایلها عبارتاند از:
| فایل | کاربرد |
|---|---|
fullchain.pem |
گواهینامه کامل |
privkey.pem |
کلید خصوصی |
این دو فایل را در مرحله بعد به Postfix معرفی خواهیم کرد.
بررسی اعتبار گواهینامه
برای مشاهده اطلاعات گواهینامه:
sudo openssl x509 \
-in /etc/letsencrypt/live/mail.example.com/fullchain.pem \
-noout -dates
نمونه خروجی:
notBefore=...
notAfter=...
این اطلاعات نشان میدهد گواهینامه از چه تاریخی معتبر است و چه زمانی منقضی میشود.
نکته مهم
اگر روی سرور Nginx یا Apache در حال اجرا است، دستور --standalone با خطا مواجه میشود؛ زیرا Certbot نمیتواند پورت 80 را اشغال کند.
در این حالت، یکی از راهکارهای زیر را انتخاب کنید:
- سرویس وب را بهصورت موقت متوقف کنید.
- از پلاگین مخصوص Nginx یا Apache در Certbot استفاده کنید.
در پایان این مرحله، گواهینامه SSL معتبر روی سرور شما ایجاد شده و آماده استفاده توسط Postfix است.
مرحله ۷ — فعالسازی TLS در Postfix
اکنون که گواهینامه SSL را از Let’s Encrypt دریافت کردهاید، نوبت آن است که Postfix را برای استفاده از این گواهینامه پیکربندی کنید تا تمامی ایمیلهای خروجی از طریق ارتباط رمزنگاریشده ارسال شوند.
باز کردن فایل تنظیمات Postfix
فایل اصلی تنظیمات را باز کنید:
sudo nano /etc/postfix/main.cf
تنظیم فایلهای گواهینامه
بخش مربوط به TLS را پیدا کنید. ممکن است مقادیری مشابه زیر داشته باشد:
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
آن را با مسیر گواهینامه Let’s Encrypt جایگزین کنید:
smtpd_tls_cert_file=/etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail.example.com/privkey.pem
فعال کردن TLS
در ادامه، تنظیمات زیر را به فایل اضافه کنید یا در صورت وجود، مقادیر آنها را تغییر دهید:
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtp_tls_CApath = /etc/ssl/certs
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
توضیح تنظیمات:
- smtpd_tls_security_level: در صورت پشتیبانی کلاینت، اتصال رمزنگاری میشود.
- smtp_tls_security_level: ارتباط Postfix با سایر سرورهای ایمیل نیز از TLS استفاده میکند.
- smtp_tls_CApath: مسیر گواهینامههای مرجع سیستم.
- smtp_tls_session_cache_database: افزایش کارایی ارتباطات TLS.
غیرفعال کردن پروتکلهای قدیمی
برای افزایش امنیت، پروتکلهای منسوخ را غیرفعال کنید:
smtp_tls_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtp_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
انتخاب Cipherهای امن
برای استفاده از الگوریتمهای رمزنگاری قوی، تنظیمات زیر را اضافه کنید:
smtp_tls_mandatory_ciphers = high
smtp_tls_ciphers = high
tls_high_cipherlist = ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
ثبت گزارش TLS
برای اینکه در صورت بروز مشکل بتوانید وضعیت TLS را بررسی کنید، ثبت گزارش را فعال کنید:
smtp_tls_loglevel = 1
smtp_tls_note_starttls_offer = yes
بررسی صحت تنظیمات
قبل از راهاندازی مجدد سرویس، بهتر است تنظیمات Postfix را بررسی کنید:
postfix check
اگر خروجیای نمایش داده نشد، یعنی فایل پیکربندی بدون خطا است.
راهاندازی مجدد Postfix
اکنون سرویس را ریستارت کنید:
sudo systemctl restart postfix
و وضعیت آن را بررسی کنید:
sudo systemctl status postfix
باید وضعیت زیر را مشاهده کنید:
Active: active (running)
آزمایش ارسال ایمیل رمزنگاریشده
اکنون یک ایمیل آزمایشی ارسال کنید:
echo "TLS Test Email" | mail -s "Postfix TLS Test" you@example.com
پس از دریافت ایمیل، در Gmail میتوانید از مسیر زیر جزئیات آن را مشاهده کنید:
Show Original → بررسی وجود عبارت:
TLS
یا:
Encrypted by TLS
وجود این عبارت نشان میدهد ایمیل از طریق ارتباط رمزنگاریشده ارسال شده است.
بررسی لاگهای TLS
برای مشاهده وضعیت TLS هنگام ارسال ایمیل:
sudo journalctl -u postfix -f
در صورت موفقیت، پیامهایی مشابه زیر مشاهده خواهید کرد:
Trusted TLS connection established
status=sent
با انجام این مرحله، ارتباط SMTP سرور شما رمزنگاری شده و ایمیلهای خروجی با امنیت بیشتری ارسال میشوند.
مرحله ۸: دریافت گواهی SSL/TLS رایگان از Let’s Encrypt
برای اینکه ایمیلهای ارسالی از سرور رمزنگاری شوند و احتمال اسپم شدن آنها کاهش یابد، باید برای دامنه خود یک گواهی TLS معتبر دریافت کنید. سادهترین روش استفاده از Certbot و سرویس Let’s Encrypt است.
نصب Certbot
ابتدا فهرست مخازن را بهروزرسانی کرده و Certbot را نصب کنید:
sudo apt update
sudo apt install certbot -y
باز کردن پورت 80 در فایروال
اگر از UFW استفاده میکنید، باید پورت HTTP را برای اعتبارسنجی دامنه باز کنید:
sudo ufw allow 80/tcp
بررسی وضعیت فایروال:
sudo ufw status
باید خروجی مشابه زیر مشاهده کنید:
80/tcp ALLOW Anywhere
80/tcp (v6) ALLOW Anywhere (v6)
دریافت گواهی SSL
اکنون دستور زیر را اجرا کنید:
sudo certbot certonly \
--standalone \
--agree-tos \
--preferred-challenges http \
--rsa-key-size 4096 \
-d example.com
پارامترها:
--standaloneیک وبسرور موقت برای تأیید دامنه اجرا میکند.--preferred-challenges httpاز اعتبارسنجی HTTP استفاده میکند.--rsa-key-size 4096کلید ۴۰۹۶ بیتی تولید میکند.-d example.comدامنه شما را مشخص میکند.
به جای
example.comدامنه واقعی خود را وارد کنید.
در طول نصب، ایمیل مدیر سرور را وارد کنید.
بررسی نتیجه
در صورت موفقیت، پیامی مشابه زیر مشاهده خواهید کرد:
Congratulations!
Your certificate and chain have been saved at:
/etc/letsencrypt/live/example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/example.com/privkey.pem
این دو فایل در مرحله بعد برای فعال کردن TLS در Postfix استفاده خواهند شد.
بررسی فایلهای گواهی
میتوانید وجود فایلها را بررسی کنید:
sudo ls -l /etc/letsencrypt/live/example.com/
خروجی تقریباً مشابه زیر خواهد بود:
cert.pem
chain.pem
fullchain.pem
privkey.pem
README
وجود فایلهای fullchain.pem و privkey.pem نشان میدهد گواهی با موفقیت صادر شده است.
مرحله ۱۰: ارسال اولین ایمیل آزمایشی
اکنون که Postfix، گواهی TLS و تنظیمات اصلی را انجام دادهاید، زمان آن رسیده است که عملکرد سرور SMTP را آزمایش کنید و مطمئن شوید ایمیلها بهدرستی ارسال میشوند.
ارسال ایمیل آزمایشی
با دستور زیر یک ایمیل آزمایشی ارسال کنید:
echo "This is a test email from Postfix on Ubuntu 24.04/26.04." | mail -s "Postfix Test Email" your_email@example.com
به جای your_email@example.com آدرس ایمیل واقعی خود را وارد کنید.
برای مثال:
echo "Postfix is working correctly." | mail -s "SMTP Test" admin@example.com
بررسی دریافت ایمیل
چند دقیقه صبر کنید و صندوق ورودی ایمیل خود را بررسی نمایید.
اگر ایمیل را مشاهده نکردید:
- پوشه Spam یا Junk را بررسی کنید.
- لاگهای Postfix را مشاهده کنید:
sudo journalctl -u postfix -f
یا
sudo tail -f /var/log/mail.log
در Ubuntu 24.04 و نسخههای جدیدتر، در بسیاری از سیستمها لاگها توسط systemd-journald مدیریت میشوند؛ بنابراین دستور journalctl معمولاً اطلاعات کاملتری نمایش میدهد.
مشاهده وضعیت صف ایمیلها
برای بررسی اینکه ایمیلی در صف ارسال باقی مانده است یا خیر:
mailq
یا
postqueue -p
اگر خروجی مشابه زیر دریافت کردید:
Mail queue is empty
یعنی هیچ ایمیلی در صف باقی نمانده است.
ارسال مجدد ایمیلهای موجود در صف
اگر ایمیلی در صف مانده باشد، میتوانید آن را دوباره ارسال کنید:
sudo postqueue -f
بررسی وضعیت سرویس Postfix
از فعال بودن سرویس اطمینان حاصل کنید:
sudo systemctl status postfix
نمونه خروجی:
Active: active (running)
در صورت نیاز میتوانید سرویس را مجدداً راهاندازی کنید:
sudo systemctl restart postfix
بررسی اتصال SMTP
برای اطمینان از اینکه Postfix روی پورت SMTP در حال اجرا است:
sudo ss -tlnp | grep :25
نمونه خروجی:
LISTEN 0 100 127.0.0.1:25
از آنجا که در این آموزش سرور را به صورت Send-Only پیکربندی کردهایم، مشاهده آدرس 127.0.0.1:25 کاملاً طبیعی است.
بررسی رمزنگاری TLS
برای مشاهده اینکه Postfix از گواهی Let’s Encrypt استفاده میکند:
postconf | grep smtpd_tls_cert_file
نمونه خروجی:
smtpd_tls_cert_file = /etc/letsencrypt/live/example.com/fullchain.pem
همچنین:
postconf | grep smtpd_tls_key_file
عیبیابی سریع
اگر ایمیل ارسال نمیشود، موارد زیر را بررسی کنید:
- سرویس Postfix در حال اجرا باشد.
- دامنه دارای رکوردهای DNS صحیح (A و PTR) باشد.
- گواهی TLS معتبر و منقضی نشده باشد.
- پورتهای موردنیاز توسط فایروال یا ارائهدهنده سرور مسدود نشده باشند.
- لاگهای سیستم هیچ خطای TLS یا SMTP نمایش ندهند.
نظرات کاربران