وردپرس و بیشتر اسکریپتها بهطور پیشفرض ایمیل را با تابع داخلی PHP میفرستند. نتیجهاش این است که ایمیل فرم تماس یا بازیابی رمز یا اصلاً نمیرسد یا یکراست به اسپم میرود. راهحل، ارسال با SMTP و اکانت ایمیل واقعی دامنه است.
چرا SMTP بهتر از ارسال پیشفرض است
- ایمیل با یک اکانت واقعی دامنه ارسال میشود، نه یک فرستنده ناشناس
- امضای DKIM و رکورد SPF روی آن اعمال میشود
- در Track Delivery سیپنل قابل پیگیری است
- احتمال اسپم شدن بهشدت کم میشود
قدم اول: ساخت اکانت ایمیل ارسال
در سیپنل یک اکانت مثل noreply@yourdomain.ir بسازید. راهنما: مدیریت اکانت ایمیل در سیپنل. رمز قوی بگذارید و جایی ذخیرهاش کنید.
مقادیر SMTP
| تنظیم | مقدار |
|---|---|
| SMTP Host | mail.yourdomain.ir |
| Port | ۴۶۵ با SSL یا ۵۸۷ با TLS |
| Encryption | SSL یا TLS متناسب با پورت |
| Authentication | فعال |
| Username | آدرس کامل ایمیل |
| Password | رمز همان اکانت |
| From Address | همان آدرس ایمیل، نه آدرسی از دامنه دیگر |

تنظیم در وردپرس
- یکی از افزونههای SMTP را نصب کنید.
- مقادیر بالا را وارد کنید.
- آدرس فرستنده را همان اکانت ساختهشده بگذارید.
- از بخش تست افزونه، یک ایمیل آزمایشی بفرستید.
آدرس فرستنده باید از همان دامنهای باشد که روی هاست است. اگر From را جیمیل یا دامنه دیگری بگذارید، SPF شکست میخورد و ایمیل اسپم میشود.
تنظیم در اسکریپتهای PHP
در پروژههای PHP معمولاً از کتابخانههایی مثل PHPMailer استفاده میشود. همان مقادیر بالا را در تنظیمات کتابخانه قرار دهید و احراز هویت را فعال کنید. اگر فریمورک استفاده میکنید، این مقادیر معمولاً در فایل تنظیمات محیطی پروژه قرار میگیرند.
مشکلات رایج
خطای احراز هویت
نام کاربری را کامل وارد کنید و رمز را دوباره از سیپنل تنظیم کنید. کاراکترهای خاص گاهی هنگام کپی ناقص منتقل میشوند.
Connection timed out
پورت بسته است. ۴۶۵ و ۵۸۷ را امتحان کنید. اگر سرور شما محدودیت دارد، از پشتیبانی بخواهید بررسی کند.
ایمیل ارسال میشود ولی به اسپم میرود
وضعیت SPF و DKIM دامنه را بررسی کنید: جلوگیری از اسپم شدن ایمیلها.
ایمیل فرم تماس نمیرسد
با راهنمای رفع مشکل ارسال ایمیل پیش بروید و وضعیت را در Track Delivery ببینید.
اگر حجم ارسال شما بالاست (خبرنامه یا پیام انبوه)، هاست اشتراکی مناسب نیست؛ با کارشناسان رایکت درباره راهکار مناسب مشورت کنید.
بیشتر بخوانید: ایمیلهای وردپرس به مقصد نمیرسد؛ چرا؟
بیشتر بخوانید: ایمیل تراکنشی فروشگاه اینترنتی.
چه تنظیمات SMTP را باید دقیق و امن ثبت کرد؟
برای ارسال ایمیل از وردپرس، نام میزبان SMTP، پورت، روش رمزنگاری، نام کاربری و رمز باید با سرویس واقعی شما منطبق باشند. هیچ پورتی برای همهٔ ارائهدهندگان یکسان نیست؛ تنظیمات را از راهنمای همان سرویس بگیرید. از اتصال TLS معتبر استفاده کنید و برای حل مشکل، اعتبارسنجی گواهی را غیرفعال نکنید.
- ایمیل فرستنده را با آدرسی که سرویس برای ارسال مجاز کرده یکسان یا همراستا انتخاب کنید.
- در صورت پشتیبانی سرویس، رمز ویژهٔ برنامه یا روش احراز هویت محدود بهجای رمز حساب اصلی استفاده کنید.
- رمز و توکن SMTP را در فایل عمومی، Git یا اسکرینشاتِ منتشرشده قرار ندهید.
- از ابزار ارسال تست افزونه، یک نامه به صندوق مستقل بفرستید و نتیجه و لاگ خطا را بررسی کنید.
اگر تست اتصال موفق بود ولی ایمیل نرسید
موفقیت اتصال SMTP فقط تأیید میکند نرمافزار توانسته به سرور ارسال دسترسی پیدا کند؛ تحویل به مقصد و قرار گرفتن در Inbox مراحل جدا هستند. وضعیت SPF/DKIM/DMARC، محدودیت نرخ ارسال، صندوق مقصد و گزارش Mail Delivery را بررسی کنید. آدرس ایمیل گیرنده را هم دوباره کنترل کنید.
برای درک رکوردهای احراز هویت، SPF، DKIM و DMARC و برای عیبیابی بعد از ارسال، مشکل ارسالنشدن ایمیل را ببینید.