عنوان:

‫نصب و پیکربندی Postfix برای ارسال ایمیل - قسمت ۳ - تست اولیه ارسال ایمیل


نویسنده: وحید نصیری
تاریخ: ۱۴۰۴/۰۴/۱۷ ۰۸:۱۰
آدرس: www.dntips.ir
تا اینجا، ما Postfix را نصب و رکوردهای DNS را به درستی پیکربندی کرده‌ایم. سرور ما اکنون یک هویت اینترنتی معتبر دارد. در این فصل، لحظه هیجان‌انگیز اولین آزمایش فرا می‌رسد. ما یک ایمیل را مستقیماً از خط فرمان سرور ارسال می‌کنیم و سپس با بررسی لاگ‌ها، مسیر حرکت آن را دنبال خواهیم کرد تا از عملکرد صحیح Postfix مطمئن شویم.

بخش ۳.۱: ارسال ایمیل از طریق خط فرمان

ساده‌ترین راه برای تست سرور ایمیل، استفاده از ابزارهای موجود در خود لینوکس است. ما از ترکیب دستور echo برای ایجاد متن ایمیل و دستور mail برای ارسال آن استفاده خواهیم کرد.

۱. نصب ابزار ارسال ایمیل (mailutils)
دستور mail به صورت پیش‌فرض روی تمام نسخه‌های اوبونتو نصب نیست. برای نصب آن، پکیج mailutils را با دستور زیر دریافت کنید:
sudo apt update
sudo apt install mailutils -y

۲. ساخت و ارسال ایمیل آزمایشی
اکنون که ابزار لازم را داریم، می‌توانیم اولین ایمیل خود را ارسال کنیم. ساختار دستور به شکل زیر است:
echo "body" | mail -s "subject" my-email@example.com
بیایید این دستور را با یک مثال واقعی اجرا کنیم. در دستور زیر، موارد زیر را با اطلاعات خودتان جایگزین کنید:
  • This is the body of the email.: متن دلخواه شما برای ایمیل.
  • Test Subject from Postfix: موضوع ایمیل شما.
  • your-personal-email@gmail.com: آدرس ایمیلی که به آن دسترسی دارید (مانند حساب Gmail، Yahoo یا Outlook خودتان) تا بتوانید دریافت ایمیل را بررسی کنید.

دستور نهایی را در ترمینال وارد و اجرا کنید:
echo "This is the body of the email sent from our new Postfix server." | mail -s "Test Subject from Postfix" your-personal-email@gmail.com
پس از اجرای این دستور، هیچ خروجی خاصی در ترمینال نمایش داده نمی‌شود. این طبیعی است. دستور mail ایمیل را به Postfix تحویل می‌دهد و Postfix مسئولیت ارسال آن را بر عهده می‌گیرد.
حالا سوال این است: از کجا بفهمیم ایمیل با موفقیت ارسال شد؟ پاسخ در لاگ‌های Postfix نهفته است.

بخش ۳.۲: بررسی لاگ‌های Postfix

هر عملیاتی که Postfix انجام می‌دهد، از دریافت یک درخواست ارسال تا تحویل موفق یا ناموفق آن به سرور مقصد، در یک فایل لاگ ثبت می‌شود. این فایل، بهترین دوست شما در هنگام مدیریت و عیب‌یابی سرور ایمیل خواهد بود.

محل فایل لاگ Postfix در اوبونتو:/var/log/mail.log
برای مشاهده زنده و دنبال کردن رویدادها در این فایل، از دستور tail با آپشن -f استفاده می‌کنیم. این دستور به ما اجازه می‌دهد که هر خط جدیدی که به فایل اضافه می‌شود را به صورت زنده ببینیم.
یک پنجره ترمینال جدید باز کنید یا در همین پنجره، دستور زیر را اجرا کنید:
sudo tail -f /var/log/mail.log
بلافاصله پس از اجرای دستور ارسال ایمیل در بخش قبل، باید چندین خط جدید در این لاگ مشاهده کنید. بیایید یک نمونه لاگ برای یک ارسال موفق را بررسی کنیم:
Jul 01 08:30:15 mail postfix/pickup[1234]: A1B2C3D4E5: client=uid=1000 from=<user@yourdomain.com>
Jul 01 08:30:15 mail postfix/cleanup[5678]: A1B2C3D4E5: message-id=<20250701123015.A1B2C3D4E5@mail.yourdomain.com>
Jul 01 08:30:15 mail postfix/qmgr[6789]: A1B2C3D4E5: from=<user@yourdomain.com>, size=450, nrcpt=1 (queue active)
Jul 01 08:30:16 mail postfix/smtp[9012]: A1B2C3D4E5: to=<your-personal-email@gmail.com>, relay=gmail-smtp-in.l.google.com[142.250.150.26]:25, delay=1.5, delays=0.1/0/0.5/0.9, dsn=2.0.0, status=sent (250 2.0.0 OK, message accepted for delivery)
تحلیل خطوط مهم لاگ:
  • خط اول (pickup): Postfix یک ایمیل جدید را از کاربر محلی (user) دریافت کرده و یک شناسه منحصر به فرد به نام Queue ID به آن اختصاص داده است (A1B2C3D4E5). این شناسه برای ردیابی ایمیل در تمام مراحل بعدی استفاده می‌شود.
  • خط سوم (qmgr): مدیر صف (Queue Manager) ایمیل را با شناسه A1B2C3D4E5 از طرف user@yourdomain.com پردازش می‌کند.
  • خط چهارم (smtp): این مهم‌ترین خط است!
  • to=: آدرس گیرنده را نشان می‌دهد.
  • relay=gmail-smtp-in.l.google.com: نشان می‌دهد که Postfix با موفقیت به سرور ایمیل گوگل متصل شده است.
  • status=sent: این عبارت تأیید نهایی است. یعنی Postfix وظیفه خود را انجام داده و ایمیل را با موفقیت به سرور مقصد تحویل داده است.
  • (250 2.0.0 OK, message accepted for delivery): این پیامی است که سرور Gmail به سرور ما بازگردانده و به این معنی است که "ایمیل شما را قبول کردم".

نتیجه‌گیری
اگر status=sent را در لاگ‌ها مشاهده کردید و ایمیل را در اینباکس حساب شخصی خود دریافت نمودید، به شما تبریک می‌گوییم! سرور Postfix شما فعال است و می‌تواند ایمیل ارسال کند.

نکته مهم: ممکن است این ایمیل اولیه به پوشه اسپم (Spam/Junk) شما منتقل شده باشد. این کاملاً طبیعی است، زیرا ما هنوز هویت سرور خود را با استانداردهای مهمی مانند SPF و DKIM تأیید نکرده‌ایم. در فصل‌های بعدی به سراغ این موارد خواهیم رفت تا اعتبار سرور خود را به حداکثر برسانیم.

برای خروج از حالت مانیتورینگ زنده لاگ، کلیدهای Ctrl + C را فشار دهید.