اغلب یکی از سوالات متداول که برای کاربران وردپرس پیش میاد اینه که چطور میشه مشکل ارسال ایمیل وردپرس رو برطرف کنیم. در این مقاله به شما نشون میدهیم که چطور مشکل ارسال نشدن ایمیل وردپرس رو برطرف کنید تا وبسایت شما بتونه ایمیل ها رو با اطمینان بیشتری ارسال کنه و پوشه اسپم رو دور بزنه.
چرا از وبسایت وردپرستون ایمیل دریافت نمی کنین؟
شایع ترین دلیل ناپدید شدن ایمیل ها اینه که سرور هاستینگ وردپرس شما به درستی برای استفاده از فانکشن PHP mail() پیکربندی نشده.
حتی اگر هاست شما برای استفاده از اونها پیکربندی شده باشه، بسیاری از ارائه دهندگان خدمات ایمیل مثل Gmail و دیگران، از ابزارهای مختلفی برای کاهش اسپم ایمیل استفاده میکنن. این ابزارها سعی میکنن تشخیص بدن که آیا یک ایمیل واقعا از مکانی اومده که ادعا میکنه از اونجا اومده؟
ایمیل های ارسال شده توسط وبسایت های وردپرسی اغلب در این آزمون رد میشن.
این به این معنیه که وقتی یک ایمیل از وبسایت وردپرس شما ارسال میشه (پلاگین فروم، اعلان ادمین و…) ممکنه حتی به پوشه اسپم گیرنده وارد نشه، چه برسه به صندوق ورودی.
به همین دلیله که توصیه می کنیم از وردپرس برای ارسال خبرنامه ایمیلتون استفاده نکنین؛ و به جاش پیشنهاد می کنیم از STMP برای ارسال ایمیل در وردپرس استفاده کنن.
SMPT چیست؟
SMPT (پروتکل انتقال ساده ایمیل/ Simple Mail Transfer Protocol) استاندارد صنعتی برای ارسال ایمیله.
بر خلاف فانکشن PHP mail()، SMTP از احرا هویت مناسب استفاده میکنه که منجر به نرخ بالای تحویل ایمیل میشه.
وردپرس دارای یک پلاگین WP Mail SMTP هست که سایت شما رو برای ارسال ایمیل با استفاده از STMP به جای تابع PHP mail() پیکربندی میکنه. و میتونین از اون برای اتصال به هر سرویس محبوب SMPT مثل SendinBlue, Gmail (G Suite), Office365, Amazon SES, و … استفاده کنین.
با توجه به این موضوع بیاین نگاهی به نحوه رفع مشکل عدم ارسال ایمیل وردپرس بندازیم.
نصب پلاگین WP Mail SMTP
هر سرویس SMTP رو که انتخاب کنین، باید پلاگین WP Mail SMTP رو در سایتتون نصب کنین. این به شما این امکان رو میده که وردپرس رو از استفاده از فانکشن داخلی PHP mail() به استفاده از سرویس SMTP تغییر بدین.
ابتدا پلاگین WP Mail SMTP رو نصب و فعال کنین (میتونین راهنمای گام به گام ما درمورد نصب پلاگین ها رو مطالعه کنین).
بعد روی WP Mail SMTP در داشبورد وردپرستون کلیک کنین تا تنظمیات پلاگین رو پیکربندی کنین.
باید با وارد کردن نام و آدرس ایمیل تجاری که می خواهین ایمیل های سایت شما از اون ارسال بشن شروع کنین. حتما باید اینجا از همون آدرس ایمیلی که برای سرویس SMTP mailing استفاده کردین، استفاده کنین.
میتونین انتخاب کنین که ایمیل ها مجبور بشن از این نام و آدرس ایمیل استفاده کنن، حتی اگه سایر پلاگین ها (مثلا WOForms) تنظیمات متفاوتی داشته باشن. WP Mail SMTP تنظیمات سایر پلاگین ها رو لغو میکنه.
بعد از اون باید یک سرویس SMTP mailing رو برای سایتتون انتخاب کنین.
در این آموزش، ما قصد داریم SMTP رو با استفاده از Sendinblue تنظیم کنیم. Sendinblue رو به عنوان mailer (ارسال کننده) در WP Mail SMTP انتخاب کنین.
برای تکمیل راه اندازی WP Mail SMTP، باید یک حساب کاربری با Sendinblue ایجاد کنین. در ادامه به سراغ این میریم و بعد به نهایی کردن راه اندازی در WP Mail SMTP برمیگردیم.
ارسال ایمیل در وردپرس با استفاده از Sendinblue
Sendinblue یک ارائه دهنده محبوب خدمات ایمیل هست که به شما اجازه میده تعداد زیادی ایمیل با قابلیت تحویل بالا ارسال کنین.
شما میتونین از Sendinblue برای ارسال 300 ایمیل در روز به صورت رایگان استفاده کنین که برای اکثر وبسایت های کوچیک کافیه.
اینها میتونن ایمیل هایی از فرم تماس شما، جزییات حساب کاربری جدید، ایمیل های بازیابی رمز عبور یا هر ایمیل دیگری باشن که از طریق وبسایت شما ارسال میشه.
ابتدا برای ایجاد حساب کاربری باید به سایت Sendinblue برین. برای راه اندازی حساب کاربریتون، روی دکمه Sign up free کلیک کنین.
وقتی حساب کاربری ایجاد کردین، داشبورد Sendinblue رو میبینین. اگر پروفایلتون رو در مرحله راه اندازی تکمیل نکردین، از شما خواسته میشه این کار رو اینجا انجام بدین.
قبل از این که بتونین راه اندازی با Sendinblue رو ادامه بدین، یک مرحله دیگه در وبسایتتون وجود داره.
راه اندازی یک زیردامنه برای وبسایتتون
ابتدا باید یک زیر دامنه راه اندازی کنین. این مثل یک بخش جداگانه از سایت شماست. پیشنهاد می کنیم از mail1.yourdomain.com استفاده کنین.
توجه: هاست وردپرس شما ممکنه به شما اجازه استفاده از mail رو به عنوان زیردامنه خودش نده، به همین دلیل ما 1 رو هم در کنار mail قرار دادیم.
برای افزودن زیردامنه، وارد حساب هاستینگتون بشین و بخش Domains رو در کنترل پنلتون پیدا کنین.
در این آموزش، نحوه انجام این کار رو در حساب هاسیتنگ در Bluehost نشون میدیم. بعد از ورود به سیستم به Domains » Subdomains برین.
بعد میتونین زیر دامنه رو تایپ کنین و روی Create کلیک کنین.
بعد از ایجاد زیردامنه، باید اون رو به حساب Sendinblue خودتون اضافه کنین.
اضافه کردن زیردامنه به Sendinblue
در حساب Sendinblue، به تنظمیات برین، بعد Your Senders رو پیدا کنین و روی دکمه Configure کلیک کنین:
در مرحله بعد روی تب Domains کلیک کنین و بعد روی دکمه Add a New Domain کلیک کنین.
کل زیر دامنه رو وارد کنین (به عنوان مثال mail1.yoursite.com) و کادر کنار I would like to use this domain name to digitally sign my emails (SPF, DKIM, DMARC) رو علامت بزنین. زیر دامنه رو اضافه کنین و کادر رو علامت بزنین.
بعد روی Save کلیک کنین و یک پنجره پاپ آپ با چند رکورد DNS لیست شده رو مشاهده میکنین.
این خطوط کد به Sendinblue اجازه میدن نام دامنه شما رو مجاز کنه.
نکته: اگر تصادفا این پنجره رو بستین نگران نباشین. میتونین با کلیک کردن روی دکمه Authenticate This Domain در کنار زیر دامنه به اون برگردین:
یک تب جدید در مرورگرتون باز کنین و وارد حساب هاستینگتون بشین. باید دامنه رو پیدا کنین و رکوردهای DNS رو باز کنین.
در Bluehost این کار با رفتن به Domains » My Domains و بعد کلیک روی Manage کنار دامنه انجام میشه.
شما باید 3 مورد از رکوردهای TXT ارائه شده توسط Sendinblue رو اینجا اضافه کنین.
ابتدا به پایین برین تا بخش TXT رکوردهای DNS رو پیدا کنین. چیزی شبیه به اینه:
بعد روی Add Record کلیک کنین.
رکورد اول رو به صورت زیر تکمیل کنین:
Host Record: mail._domainkey.mail1
Record Type: TXT
TXT Value: Copy this from Sendinblue.
TTL: 1 day
نکات: Host Record ممکنه توسط وب هاست شما Host یا Name نامیده بشه.
- اگر از چیز متفاوتی برای زیردامنه استفاده کردین، mail1 رو تغییر بدین.
- Record Type ممکنه موردنیاز نباشه.
- TXT Value ممکنه TXT نامیده بشه: این اولین قطعه کد طولانی در جزییات Sendinblue هست.
- TTL میتونه 24 ساعت یا 86400 ثانیه باشه (هر دو معادل 1 روز هستن). اگر از GoDaddy استفاده میکنین اون رو روی 1 ساعت تنظیم کنین.
وقتی اولین رکورد رو اضافه کردین روی save کلیک کنین.
بعد باید رکورد دوم رو اضافه کنین. اون رو به صورت زیر تکمیل کنین:
Host Record: mail1
Record Type: TXT
TXT Value: v=spf1 include:spf.sendinblue.com mx ~all
TTL: 1 day
بعد از اتمام کار روی Save کلیک کنین.
بعد از ذخیره مورد دوم، باید رکورد سوم رو اضافه کنین. اون رو به صورت زیر تکمیل کنین:
Host Record: mail1
Record Type: TXT
TXT Value: این رو از Sendinblue کپی کنین، سومین قطعه کده.
TTL: 1 day
بعد از اتمام کار روی Save کلیک کنین.
هشدار: Sendinblue دارای قطعه کد چهارم برای رکورد DMARC هم هست. شما به این نیازی ندارین و اکیدا توصیه می کنیم از اون صرف نظر کنین مگر این که آشنایی با پیکربندی DMARC داشته باشین.
بعد از اینکه رکوردها رو اضافه کردین، به Sendinblue برگردین. برای هر رکورد، روی دکمه Record Added کلیک کنین. لطفا اون رو تایید کنین. ممکنه 24 تا 48 ساعت طول بکشه تا Sendinblue بتونه رکوردهای شما رو تایید کنه، اما اغلب سریع تری اتفاق میفته.
اگر با کلیک روی اون دکمه هیچ اتفاقی نیفتاد، رکوردها هنوز قابل تایید نیستن. بعدا دوباره بررسی کنین و ببینین آیا تایید شدن یا نه. بعد از اون، کلمه Configured رو در کنار رکوردها به رنگ سبز خواهید دید:
تا زمانی که منتظر تایید هستین، میتونین این آموزش رو ادامه بدین.
پایان راه اندازی WP Mail SMTP برای استفاده از Sendinblue
به تنظیمات WP Mail SMTP در داشبورد وردپرستون برگردین. باید قبلا باید ایمیل و نام رو وارد کرده باشین، اگر نه، الان میتونین این کار رو انجام بدین.
چک باکس Return Path رو بدون علامت بذارین زیرا این گزینه توسط Sendinblue استفاده نمیشه.
در مرحله بعد روی Sendinblue برای mailer کلیک کنین.
Sendinblue رو به عنوان ارسال کننده در WP Mail SMTP انتخاب کنین.
برای پیدا کردن کلید API باید به حساب Sendinblue برین. فقط کافیه روی لینک زیر کادر API key کلیک کنین تا داشبورد حساب Sendinblue شما در محل مناسب، در یک تب جدید باز بشه.
کلید v3 API رو از این صفحه کپی کنین.
تبریک میگم. حالا شما همه چیز رو تنظیم کردین. مرحله آخر ارسال یک ایمیل آزمایشیه تا مطمئن شین که همه چیز کار میکنه.
به تب Email Test از WP Mail SMTP برین و یک آدرس ایمیل برای ارسال ایمیل وارد کنین. این به طور پیش فرض، ایمیل مدیریت سایت میشه. روی Send Email کلیک کنین.
باید پیام Test HTML email was sent successfully! رو ببینین. صندوق ورودیتون رو بررسی کنین که ببینین آیا رسیده یا نه. به این صورته:
توجه: اگر حساب Sendinblue شما هنوز فعال نشده باشه، این پیام رو دریافت میکنین: [permission_denied]: Unable to send email. Your SMTP account is not yet activated
روش های جایگزین برای رفع مشکل ایمیل وردپرس
همونطور که از لیست گزینه های mailer پلاگین WP Mail SMTP میبینین، لازم نیست از Sendinblue استفاده کنین. در حالی که این بهترین توصیه رایگان ما هست، گزینه های دیگری هم وجود دارن که میتونین از اونها استفاده کنین، از جمله Office 365, Gmail / G Suite, Amazon SES,.
استفاده از Gmail یا G Suite با WP Mail SMTP برای رفع مشکل ایمیل های وردپرس
اگر حساب Gmail یا G Suite دارین، میتونین از اون برای ارسال ایمیل هاتون استفاده کنین. وقتی از پلاگین WP Mail SMTP استفاده میکنین، نیازی به وارد کردن جزییات ورود ایمیلتون در وردپرس نخواهید داشت.
برای استفاده از Gmail یا G Suite پلاگین Mail SMTP رو همونطور که در بالا نشون داده شده راه اندازی کنین و بعد روی گزینه Google برای mailer کلیک کنین.
باید کادر Return Path رو علامت بزنین.
بعد از شما خواسته میشه که یک Client ID و Client Secret رو وارد کنین. برای دریافت این جزییات، باید یک برنامه وب در حساب گوگلتون ایجاد کنین.
توجه: میتونین از این فرایند با یک حساب Gmail معمولی استفاده کنین، اما اگر از G Suite استفاده میکنین، امکان تحویل ایمیل شما بسیار بهتر خواهد بود. با این حال چند اشکال کلیدی در استفاده از Gmail یا G Suite وجود داره.
یکی اینه که ممکنه لازم باشه با هاست وبسایتتون تماس بگیرین و از اونها بخواهین گواهی مناسب برای این کار رو نصب کنن.
مورد دیگه اینه که اگر آدرس ایمیل رو در آینده تغییر بدین، باید دوباره کل فرایند رو طی کنین که شامل ایجاد برنامه وب جدید هم میشه.
استفاده از Office 365 / Outlook با WP Mail SMTP برای رفع مشکل ایمیل های وردپرس
اگر از Microsoft Office 365 یا Outlook برای حساب ایمیل معمولیتون استفاده میکنین، میتونین از اون برای ارسال ایمیل از طریق وردپرس هم استفاده کنین. اگر چه ما توصیه به انجامش نداریم چون امنیت کمتری داره.
باید WP Mail SMTP رو مثل بالا تنظیم کنین و روی گزینه Other SMTP کلیک کنین. با این کار یک فرم برای تکمیل باز میشه. با استفاده از تنظیمات زیر اون رو پر کنین:
SMTP Host: smtp.office365.com
Encryption: TLS
SMTP Port: 587
Auto TLS: (leave switched on)
Authentication: (leave switched on)
SMTP Username: Your Office 365 account email address
SMTP Password: Your Office 365 account password
مشکل کلیدی این روش اینه که نیاز به ذخیره رمز عبور شما به صورت متن ساده در وردپرس داره. این ایمن نیست و رمز عبور شما برای هر administrator دیگری در حساب شما قابل مشاهده است. میتونین از دستورالعمل های برنامه WP Mail SMTP برای رکورد اون در فایل wp-config.php استفاده کنین.
استفاده از Amazon SES با WP Mail SMTP برای رفع مشکل ایمیل های وردپرس
پلتفرم Amazon AWS دارای یک سرویس ایمیل ساده SES هست که میتونین از اون برای رفع مشکل ایمیل وردپرس استفاده کنین.
بهترین بخش درمورد آمازون اینه که به شما امکان میده تا 62000 ایمیل رو هر ماه به صورت رایگان ارسال کنین. نکته منفیش اینه که راه اندازیش برای مبتدی ها کمی چالش برانگیزتره، به همین دلیله که ما اون رو به عنوان گزینه ترجیحی توصیه نمی کنیم.
اما همونطور که میتونین تصور کنین، بسیاری از متخصصان از Amazon SES برای سرویس SMTP ایمیل وردپرستون استفاده میکنن.
از هر ایمیلی که تصمیم به استفاده از اون رو دارین، همیشه به یاد داشته باشین که از تب Test Email استفاده کنین تا مطمئن شین که ایمیل ها با موفقیت ارسال میشن.
باید حتما صندوق ورودی رو هم بررسی کنین و تایید کنین که ایمیل آزمایشی رو دریافت کردین.
امیدواریم این مقاله به شما در یادگیری نحوه رفع مشکل عدم ارسال ایمیل کمک کرده باشه.