وردپرس و بیشتر اسکریپتها بهطور پیشفرض ایمیل را با تابع داخلی 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 ببینید.
اگر حجم ارسال شما بالاست (خبرنامه یا پیام انبوه)، هاست اشتراکی مناسب نیست؛ با کارشناسان رایکت درباره راهکار مناسب مشورت کنید.