تنظیم کردن SMTP در وردپرس
برای تنظیم SMTP در وردپرس کافی است یک افزونه SMTP نصب کنید، اطلاعات یک صندوق ایمیل روی دامنه خودتان را در آن وارد کنید و پورت 587 با رمزنگاری STARTTLS یا پورت 465 با رمزنگاری TLS را انتخاب کنید. اما تا وقتی رکوردهای SPF، DKIM و DMARC دامنه را هم درست نکرده باشید، ایمیلها ارسال میشوند ولی در پوشه اسپم مینشینند.
چرا وردپرس بدون SMTP ایمیل نمیفرستد
وردپرس به صورت پیشفرض برای ارسال ایمیل از تابع wp_mail() استفاده میکند و این تابع هم در پشت صحنه به تابع mail() در PHP میرسد. مشکل اینجاست که mail() هیچ احراز هویتی ندارد؛ نامه را مستقیم به صف ارسال سرور تحویل میدهد بدون آنکه ثابت کند واقعاً حق دارد از طرف دامنه شما نامه بفرستد. سرور مقصد هم دقیقاً به همین دلیل به آن مشکوک میشود.
نتیجه یکی از این دو حالت است: یا ایمیل اصلاً از سرور خارج نمیشود، یا خارج میشود و در Gmail و Outlook مستقیم به Spam میرود چون بررسی SPF و DKIM را رد کرده است. SMTP احراز هویتشده هر دو مشکل را حل میکند، چون نامه با نام کاربری و رمز عبور یک صندوق واقعی ارسال میشود و مسیر ارسال قابل اثبات است.
نکته: در تمام هاستهای آنلاین سرور امکان ارسال از phpmail بسته است و برخی CMSها مانند وردپرس به صورت پیشفرض از phpmail استفاده میکنند؛ بنابراین روی این هاستها تنظیم SMTP اختیاری نیست و تنها راه ارسال ایمیل است.
پورتها و رمزنگاری: ۵۸۷ یا ۴۶۵
دو پورت استاندارد IANA برای تحویل نامه از سمت برنامه وجود دارد:
587با رمزنگاری STARTTLS: پورت رسمی Submission. اتصال ابتدا بدون رمزنگاری باز میشود و سپس با فرمانSTARTTLSرمزنگاری میشود.465با رمزنگاری TLS مستقیم: اتصال از همان ثانیه اول رمزنگاریشده است. استانداردهای امروزی این حالت را ترجیح میدهند چون جای خطای «افت به حالت رمزنگارینشده» ندارد.
پورت 25 که در راهنماهای قدیمی به عنوان «پورت پیشفرض SMTP» معرفی میشد، امروز برای برنامه شما مناسب نیست. این پورت مخصوص تبادل نامه بین سرورهای ایمیل است و بسیاری از شبکهها و دیتاسنترها آن را برای جلوگیری از هرزنامه میبندند. اگر جایی دیدید که پیشنهاد میکند وردپرس را روی 25 تنظیم کنید، آن راهنما منسوخ است.
اگر وردپرس شما به جای هاست اشتراکی روی یک سرور مجازی ایران اجرا میشود، پیش از اینکه دنبال ایراد افزونه بگردید از روی خود سرور بررسی کنید که پورت مقصد باز است؛ فایروال سرور شما هم میتواند همان اتصال خروجی را ببندد.
پیشنیاز: یک صندوق ایمیل روی دامنه خودتان
قبل از رفتن سراغ افزونه، در کنترلپنل هاست (سیپنل یا پلسک) یک اکانت ایمیل روی دامنه خودتان بسازید. مثلاً اگر دامنه شما domain.com است، آدرسی مثل info@domain.com بسازید و رمز آن را دقیق جایی یادداشت کنید. استفاده از یک آدرس Gmail شخصی به عنوان فرستنده کار نمیکند، چون دامنه فرستنده با دامنه سایت نمیخواند و همین ناهماهنگی باعث رد شدن DMARC میشود.
روی هاست لینوکس ایران ساخت این صندوق از بخش Email Accounts در سیپنل چند ثانیه طول میکشد. اگر این حساب اصلاً ایمیلی نمیفرستد یا نمیگیرد، ابتدا رکوردهای دامنه را طبق دلایل عدم ارسال ایمیل در هاست سی پنل بررسی کنید.
یادآوری کوتاه درباره پروتکلها: SMTP فقط برای ارسال نامه است و برای دریافت نامه از POP3 یا IMAP استفاده میشود. تنظیمات این صفحه فقط سمت ارسال را درست میکند.
نصب افزونه SMTP در وردپرس
وارد پیشخوان وردپرس شوید، از منوی «افزونهها» گزینه «افزودن افزونه تازه» را بزنید.
عبارت SMTP را جستوجو کنید و افزونه را نصب کنید. نسخه رایگان افزونههای شناختهشده SMTP برای این کار کافی است و نیازی به خرید نسخه حرفهای ندارید.
پس از نصب، افزونه را مطابق تصویر فعال کنید.
در پنجره راهاندازی که باز میشود، به جای سرویسهای آماده، گزینه «SMTP های دیگر» (Other SMTP) را انتخاب کنید تا بتوانید اطلاعات سرور خودتان را دستی وارد کنید.
مقادیری که باید وارد کنید
- ایمیل فرستنده: همان آدرسی که ساختید، مثل
info@domain.com. حتماً باید روی دامنه خود سایت باشد. - نام فرستنده: نامی که گیرنده میبیند، مثلاً نام برند شما.
- میزبان SMTP (Host): این مقدار را از خود کنترلپنل بردارید. در سیپنل صفحه Connect Devices یا Configure Mail Client دقیقاً نام میزبان درست را نشان میدهد. آن را حدس نزنید و از راهنماهای عمومی کپی نکنید، چون هر سرور مقدار خودش را دارد.
- رمزنگاری و پورت: یا TLS با پورت
465، یا STARTTLS با پورت587. این دو با هم جفت هستند؛ ترکیب کردنشان خطای اتصال میدهد. - نام کاربری: آدرس کامل صندوق ایمیل، نه فقط بخش قبل از
@. - رمز عبور: همان رمزی که هنگام ساخت صندوق تعیین کردید. برخی افزونههای SMTP اجازه میدهند این رمز را به جای پایگاه داده، به شکل یک ثابت PHP داخل فایل
wp-config.phpتعریف کنید؛ اگر افزونه شما این امکان را دارد از آن استفاده کنید تا رمز صندوق در دیتابیس سایت ذخیره نشود.
اگر سایت شما روی هاست وردپرس ایران بالا آمده، این مقادیر همگی در همان سیپنل در دسترس هستند و نیازی به سرویس ایمیل جداگانه ندارید. در پایان تنظیمات را ذخیره کنید.
ارسال ایمیل آزمایشی
افزونه یک بخش Email Test دارد. روی گزینه ارسال ایمیل آزمایشی کلیک کنید.
یک آدرس گیرنده وارد کنید و تست را اجرا کنید. بهتر است آدرس گیرنده روی Gmail باشد تا وضعیت واقعی تحویل را ببینید.
در صورت درست بودن تنظیمات، پیغام موفقیت نمایش داده میشود.
و نامه هم در صندوق گیرنده مینشیند.
سه رکورد DNS که مشکل اسپم را حل میکنند
تست موفق فقط یعنی وردپرس توانست به سرور ایمیل وصل شود. اینکه نامه به Inbox برسد یا به Spam، به سه رکورد TXT روی دامنه بستگی دارد:
- SPF: یک رکورد TXT که فهرست میکند چه سرورهایی حق دارند از طرف دامنه شما نامه بفرستند. با
v=spf1شروع میشود. برای هر دامنه فقط یک رکورد SPF مجاز است؛ داشتن دو رکورد باعث خطا میشود. - DKIM: امضای رمزنگاریشده نامه. کلید عمومی آن در یک رکورد TXT منتشر میشود و گیرنده با آن ثابت میکند نامه در مسیر دستکاری نشده است. در سیپنل از بخش Email Deliverability با یک کلیک ساخته میشود.
- DMARC: رکورد TXT روی
_dmarc.domain.comکه باv=DMARC1شروع میشود و تعیین میکند اگر SPF یا DKIM رد شد، گیرنده با نامه چه کند. بدون DMARC، ارائهدهندگان بزرگ ایمیل به دامنه شما اعتماد کامل نمیکنند.
این سه رکورد دیگر یک کار اختیاری و «بهتر است انجام شود» نیستند. از سال ۲۰۲۴ گوگل و یاهو در راهنمای فرستندگان خود احراز هویت ایمیل را الزامی کردهاند: هر فرستندهای دستکم باید SPF یا DKIM داشته باشد و فرستندگان انبوه باید هر سه رکورد را با هم داشته باشند. پس راهنماهایی که هنوز میگویند تنظیم SMTP بهتنهایی کافی است، مربوط به پیش از این تغییر هستند. ترتیب کار هم مهم است: اول SPF را بنویسید، بعد DKIM را فعال کنید و در آخر DMARC را اضافه کنید. اگر DMARC را زودتر از آن دو و با سیاست سختگیرانه منتشر کنید، ممکن است نامههای سالم خودتان هم رد شوند.
افزودن این رکوردها روی سرویس DNS از همان پنل مدیریت رکوردها انجام میشود و پس از انتشار، معمولاً چند ساعت طول میکشد تا در سراسر اینترنت دیده شود.
خطاهای رایج
اگر تست شکست خورد، معمولترین دلایل اینها هستند: ترکیب اشتباه پورت و رمزنگاری، وارد کردن نام کاربری بدون بخش دامنه، بسته بودن پورت خروجی روی فایروال سرور، و اشتباه بودن نام میزبان. اگر پیام خطا به گواهی SSL اشاره میکند، به جای فعال کردن گزینههای نادیده گرفتن گواهی، نام میزبان را به همان مقداری تغییر دهید که گواهی سرور برای آن صادر شده است.









ارسال نظر