نحوه تنظیم Postfix برای استفاده از صندوق پست مجازی در اوبونتو 20.04
در این آموزش، Postfix را برای استفاده از صندوق پست مجازی در اوبونتو راه اندازی می کنیم.
پس از نصب و پیکربندی اولیه، Postfix می تواند نامه های ارسالی را به نام کاربران ثبت شده در سیستم ارسال و دریافت کند. در این آموزش، Postfix را برای استفاده از صندوق پست مجازی در اوبونتو راه اندازی می کنیم.
پیکربندی سیستم
اول از همه، آماده سازی سیستم برای عملکرد صندوق های پست مجازی مورد نیاز است. بیایید یک پوشه صندوق پست مجازی برای این ایجاد کنیم، نام آن می تواند دلخواه باشد، اما اگر آن را تغییر دادید، فراموش نکنید که گزینه مناسب را در تنظیمات بعدی جایگزین کنید و شامل یک پوشه برای نام دامنه شما خواهد بود. در داخل آن، Postfix فایل های مربوط به هر کاربر مجازی را پس از اولین دریافت ایمیل به او اضافه می کند.
sudo mkdir -p /home/virtualmailboxes/domain-name.com
حالا بیایید پست مجازی کاربر، گروه و حقوق را برای کار با این پوشه ها پیکربندی کنیم.
sudo groupadd -g 2000 virtualmail sudo useradd -g virtualmail -u 2000 virtualmail -d /home/virtualmailboxes -m chown -R virtualmail:virtualmail /home/virtualmailboxes
پیکربندی Postfix
فایل پیکربندی Postfix را باز کنید:
sudo nano /etc/postfix/main.cf
Postfix می تواند در یکی از دو حالت هنگام پردازش نامه برای یک دامنه واحد عمل کند:
- ارسال نامه به کاربران سیستم همانطور که قبلاً پیکربندی شده بود.
- با صندوق پست مجازی کار کنید و نامه را برای کاربران مجازی تحویل دهید.
برای پیکربندی گزینه اول، دامنه هدف به متغیر mydestination اضافه می شود. بنابراین، اکنون آن را از آنجا حذف کرده و به شکل زیر می آوریم:
mydestination = localhost.com, localhost
مرحله بعدی این است که تنظیمات زیر را به فایل کانفیگ اضافه کنید:
virtual_mailbox_domains = domain-name.com virtual_mailbox_base = /home/virtualmailboxes virtual_mailbox_maps = hash:/etc/postfix/virtualmaps virtual_minimum_uid = 500 virtual_uid_maps = static:2000 virtual_gid_maps = static:2000
وجود متغیر virtual_mailbox_domains نشان می دهد که Postfix در حالت صندوق پست مجازی کار می کند. همچنین شامل دامنه ای است که نامه برای آن پردازش می شود
virtual_mailbox_base مسیر ذخیره نامه را نشان می دهد، virtual_mailbox_maps فایلی را با لیستی از کاربران مجازی نشان می دهد و virtual_minimum_uid ،virtual_uid_maps ،virtual_gid_maps تنظیمات کاربر سیستم که پوشه نامه را مدیریت خواهد کرد.
حال بیایید لیستی از صندوق های پست مجازی ایجاد کنیم که مسیر آن در virtual_mailbox_maps مشخص شده است. هر خط از این فایل باید حاوی یک آدرس پست الکترونیکی با فرمت user@domain باشد و با یک دامنه/پوشه جدا شده باشد – مسیر فایل برای ذخیره نامه نسبت به virtual_mailbox_base.
sudo nano /etc/postfix/virtualmaps
[email protected] domain-name.com/user1 [email protected] domain-name.com/user2 [email protected] domain-name.com/support
فایل را ذخیره کنید. برای اعمال تنظیمات، باید 2 دستور را اجرا کنید:
postmap /etc/postfix/virtualmaps postfix reload
تست صندوق پست مجازی
برای تست دریافت ایمیل توسط کاربر مجازی به او ایمیل بفرستیم. ما این کار را از طرف کاربر دیگری که توسط ما ایجاد شده است انجام می دهیم و ایمیل او را به عنوان آدرس برگشتی نشان می دهیم (پارامترهای -u و -r):
sudo echo "Postfix virtual mailboxes test" | mail -r [email protected] -u [email protected] -s "Subject" [email protected]
برای مشاهده پیام های دریافت شده توسط user1 از دستور زیر استفاده کنید:
sudo cat /home/virtualmailboxes/domain-name.com/user1
خروجی:
From [email protected] Wed Mar 31 12:55:19 2021 Return-Path: <[email protected]> X-Original-To: [email protected] Delivered-To: [email protected] Received: by domain-name.com (Postfix, from userid 0) id 260A481421; Wed, 31 Mar 2021 12:55:19 +0000 (UTC) Subject: Subject To: <[email protected]> X-Mailer: mail (GNU Mailutils 3.7) Message-Id: <[email protected]> Date: Wed, 31 Mar 2021 12:55:19 +0000 (UTC) From: root <[email protected]> Postfix virtual mailboxes test
اگر نامه وجود ندارد، سعی کنید با استفاده از دستور به گزارش های ارسال نامه نگاه کنید:
sudo cat /var/log/mail.log
علاوه بر این، در صورت بروز خطا، می توان نامه را به فرستنده بازگرداند. به همین دلیل است که ما آن را از طرف کاربر مجازی ایجاد شده قبلی ارسال کردیم. پس از همه، نامه دیگر به کاربران سیستم تحویل داده نمی شود. برای مشاهده صندوق پستی فرستنده (user2)، از دستور زیر استفاده کنید:
sudo cat /home/virtualmailboxes/domain-name.com/user2