هر آنچه برای ارسال ایمیل با SMTP، رفع مشکل ارسال، تنظیم رکوردهای MX و DKIM نیاز دارید.
همین حالا ایمیلهای سایت خود را مدیریت کنید!
مقالات به سه گروه دستهبندی شدهاند. روی هر عنوان کلیک کنید تا محتوای کامل باز شود.
در کنار ایمیل، میتوانید از پنل پیامک رایگان و همیشگی پارسه دو استفاده کنید. افزونه وردپرس، ووکامرس و خطوط اختصاصی رایگان در انتظار شماست.
SMTP جیمیل و رفع مشکل ارسال ایمیلها
ارسال ایمیل از طریق تابع داخلی PHP یعنی mail() در بسیاری از سرویسهای هاستینگ دارای محدودیتهایی است. این محدودیتها معمولاً برای جلوگیری از ارسال ایمیلهای ناخواسته و حفظ امنیت سرورها اعمال میشوند.
به همین دلیل، اگر وبسایت شما نیاز به ارسال ایمیلهایی مانند ایمیل ثبتنام کاربران، بازیابی رمز عبور، فرم تماس با ما، اعلانهای سایت یا اطلاعرسانی سفارشها دارد، بهتر است از یک سرویس ایمیل خارجی و روش استاندارد SMTP استفاده کنید.
SMTP یک روش استاندارد برای ارسال ایمیل از طریق سرورهای ایمیل معتبر است. با استفاده از SMTP جیمیل:
mail() هاست کاهش پیدا میکندبرای اتصال سایت به سرویسهای ایمیل خارجی چند روش وجود دارد. بسیاری از سرویسدهندگان ایمیل امکانات زیر را ارائه میدهند:
برخی سرویسها رایگان هستند و برخی امکانات پیشرفتهتر را به صورت پولی ارائه میکنند.
یکی از سادهترین روشها برای شروع، استفاده از یک حساب Gmail است. برای این کار سایت شما باید به سرور SMTP گوگل متصل شود.
اطلاعات معمول اتصال Gmail SMTP:
SMTP Server: smtp.gmail.com Port: 587 Encryption: TLS
برای امنیت بیشتر، گوگل استفاده از رمز عبور برنامهها (App Password) را پیشنهاد میکند. رمز عبور اصلی حساب Gmail را نباید داخل کد سایت قرار دهید.
اگر سایت شما با وردپرس ساخته شده است، نیازی به کدنویسی انجام دهید. میتوانید از افزونههای SMTP استفاده کنید. یکی از افزونههای محبوب WP Mail SMTP است. این افزونه امکان اتصال وردپرس به سرویسهای مختلف ایمیل را فراهم میکند و از Gmail SMTP نیز پشتیبانی میکند.
مراحل کلی:
پس از تنظیم صحیح، وردپرس تمام ایمیلهای خود را از طریق SMTP ارسال خواهد کرد. برای اطلاعات بیشتر در مورد وردپرس، به آموزش وردپرس مراجعه کنید.
اگر سایت خود را با PHP نوشتهاید، باید اتصال SMTP را در کد خود پیادهسازی کنید. برای سادهتر شدن کار میتوانید از کتابخانههای آماده استفاده کنید.
یکی از محبوبترین کتابخانههای ارسال ایمیل در PHP است که امکانات زیادی برای اتصال SMTP دارد:
یکی دیگر از کتابخانههای قدیمی و شناختهشده PHP برای ارسال ایمیل است که امکان اتصال به SMTP را فراهم میکند.
نمونه تنظیمات معمول Gmail در PHPMailer:
$mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = 'your-email@gmail.com'; $mail->Password = 'your-app-password'; $mail->SMTPSecure = 'tls'; $mail->Port = 587;
در این کد:
Username نام حساب Gmail شما استPassword باید رمز عبور برنامه Gmail باشدیکی از مشکلات رایجی که کاربران هنگام مدیریت وبسایت با آن مواجه میشوند، ارسال نشدن ایمیلهای سایت است. ممکن است فرم تماس، ایمیل ثبتنام کاربران، لینک بازیابی رمز عبور یا پیامهای خودکار سایت به درستی ارسال نشوند.
در بسیاری از سرویسهای هاستینگ، بهخصوص هاستهای رایگان یا اشتراکی، ارسال ایمیل با تابع داخلی PHP یعنی mail() محدود میشود. این محدودیت معمولاً برای جلوگیری از ارسال اسپم و حفظ امنیت سرورها اعمال میشود. خوشبختانه این مشکل به راحتی قابل حل است. بهترین روش، استفاده از یک سرویس ایمیل خارجی و اتصال سایت به یک سرور SMTP معتبر است.
بسیاری از سایتها به صورت پیشفرض برای ارسال ایمیل از تابع PHP mail() استفاده میکنند. این روش به سرور هاست وابسته است و در برخی سرویسهای میزبانی ممکن است محدود یا غیرفعال باشد.
در چنین شرایطی، ایمیلهایی مانند موارد زیر ممکن است ارسال نشوند:
استفاده از SMTP خارجی باعث میشود ایمیلها به جای ارسال مستقیم از سرور هاست، از طریق یک سرویس ایمیل معتبر ارسال شوند که نتیجه آن، سرعت و قابلیت تحویل بهتر ایمیلها است.
بهترین راهکار این است که سایت خود را به یک سرویس SMTP خارجی متصل کنید. SMTP مخفف Simple Mail Transfer Protocol است و استاندارد اصلی ارسال ایمیل در اینترنت محسوب میشود.
با استفاده از SMTP:
وردپرس به صورت پیشفرض از SMTP استفاده نمیکند، اما با نصب افزونههای مناسب میتوانید این قابلیت را اضافه کنید. یکی از افزونههای محبوب برای این کار FluentSMTP است. این افزونه رایگان است و امکان اتصال وردپرس به سرویسهای مختلف SMTP را فراهم میکند.
پس از نصب افزونه، میتوانید اطلاعات سرویس ایمیل خود را وارد کنید، مانند:
اگر از سیستمهایی مانند جوملا، پرستاشاپ یا سایر CMSها استفاده میکنید، معمولاً تنظیمات SMTP در بخش مدیریت ایمیل وجود دارد. برای فعالسازی آن:
اگر وبسایت خود را با PHP به صورت اختصاصی طراحی کردهاید، بهتر است به جای تابع mail() از کتابخانههای SMTP استفاده کنید. یکی از محبوبترین کتابخانهها PHPMailer است.
این کتابخانه امکان ارسال ایمیل با SMTP را فراهم میکند و امکاناتی مانند ارسال ایمیل HTML، فایلهای پیوست، رمزگذاری SSL/TLS و مدیریت خطاها را در اختیار توسعهدهندگان قرار میدهد.
نمونه استفاده:
use PHPMailer\PHPMailer\PHPMailer; $mail = new PHPMailer(); $mail->isSMTP(); $mail->Host = "smtp.example.com"; $mail->SMTPAuth = true; $mail->Username = "your@email.com"; $mail->Password = "password"; $mail->SMTPSecure = "tls"; $mail->Port = 587;
گزینههای مختلفی برای ارسال ایمیل از طریق SMTP وجود دارد. انتخاب سرویس مناسب به تعداد ایمیلها و نیاز سایت شما بستگی دارد. برخی سرویسهای محبوب:
برای شروع، بسیاری از کاربران از Gmail استفاده میکنند، زیرا ایجاد حساب رایگان است و راهاندازی آن ساده میباشد. البته برای سایتهای حرفهای، فروشگاهها و پروژههایی که ایمیل زیادی ارسال میکنند، استفاده از سرویسهای تخصصی ایمیل پیشنهاد میشود.
تابع mail() وابسته به تنظیمات سرور است و مشکلاتی مانند موارد زیر ممکن است ایجاد کند:
به همین دلیل، امروزه بیشتر وبسایتهای حرفهای از SMTP یا سرویسهای ارسال ایمیل استفاده میکنند.
تنظیم رکوردهای MX و محدودیت زیردامنهها
اگر میخواهید ایمیلهایی مانند info@example.com یا support@example.com را روی دامنه خود دریافت کنید، باید رکوردهای MX را در تنظیمات DNS دامنه پیکربندی کنید.
رکورد MX یا Mail Exchange Record مشخص میکند که ایمیلهای ارسالشده به دامنه شما باید به کدام سرور ایمیل هدایت شوند.
به عنوان مثال، زمانی که شخصی برای آدرس ایمیل دامنه شما پیامی ارسال میکند، سرورهای ایمیل با بررسی رکورد MX متوجه میشوند که پیام باید به کدام سرویس ایمیل تحویل داده شود.
هاست VCP به صورت پیشفرض سرویس ایمیل ارائه نمیکند، اما شما میتوانید دامنه خود را به سرویسهای ایمیل خارجی متصل کنید و دریافت ایمیل را مدیریت نمایید. همچنین برای ثبت دامنه یا انتقال آن میتوانید از سرویس ثبت دامنه پارسه دو استفاده کنید.
در این آموزش از یک سرویس ارسال و دریافت ایمیل مانند ImprovMX به عنوان نمونه استفاده میکنیم، اما مراحل کلی برای بیشتر سرویسهای ایمیل مشابه است.
ابتدا باید رکوردهای MX مورد نیاز را از ارائهدهنده سرویس ایمیل خود دریافت کنید. پس از افزودن دامنه در سرویس ایمیل موردنظر، معمولاً اطلاعاتی مانند موارد زیر نمایش داده میشود:
ممکن است یک سرویس ایمیل فقط یک رکورد MX و برخی سرویسها چند رکورد MX برای افزایش اطمینان ارائه دهند.
نمونه:
Priority: 10 Mail Server: mx.example.com
قبل از اضافه کردن رکوردهای جدید، بهتر است رکوردهای MX قدیمی دامنه را بررسی کنید. برای انجام این کار:
وجود چند رکورد MX اشتباه ممکن است باعث شود ایمیلها به سرور نامناسب ارسال شوند.
اکنون باید رکوردهای MX سرویس ایمیل خود را اضافه کنید. برای هر رکورد:
نمونه:
نوع رکورد | مقدار | اولویت MX | mx1.example.com | 10 MX | mx2.example.com | 20
mx.example.com.، در برخی پنلها باید نقطه پایانی را حذف کنید: mx.example.comتغییر رکوردهای MX یک تغییر DNS محسوب میشود و ممکن است بلافاصله در همه نقاط اینترنت فعال نشود. معمولاً انتشار DNS چند دقیقه تا چند ساعت زمان میبرد، اما در برخی شرایط ممکن است تا ۷۲ ساعت طول بکشد.
در این مدت ممکن است:
این موضوع طبیعی است و به دلیل کش DNS اتفاق میافتد.
بعد از انجام تنظیمات، بهتر است بررسی کنید که رکوردهای MX شما در اینترنت منتشر شدهاند. برای این کار میتوانید از ابزارهای بررسی DNS مانند MX Lookup استفاده کنید.
پس از وارد کردن نام دامنه، باید رکوردهای MX نمایش دادهشده با تنظیماتی که در پنل وارد کردهاید مطابقت داشته باشند.
اگر رکوردها درست نمایش داده نمیشوند، موارد زیر را بررسی کنید:
ممکن است هنوز زمان کافی برای انتشار رکوردها سپری نشده باشد.
اگر از سرویسهایی مانند Cloudflare یا یک شرکت DNS دیگر استفاده میکنید، باید رکوردهای MX را در همان پنل DNS تنظیم کنید، نه داخل کنترل پنل هاست.
باید توجه داشته باشید که رکورد MX فقط برای دریافت ایمیل استفاده میشود.
اگر در ارسال ایمیل مشکل دارید، باید تنظیمات دیگری مانند موارد زیر را بررسی کنید:
هنگام مدیریت تنظیمات DNS در کنترل پنل هاست، ممکن است در بخش رکوردهای MX با رکوردی مواجه شوید که مربوط به یک زیردامنه پیشفرض یا دامنه داخلی حساب میزبانی شما است.
گاهی کاربران هنگام حذف یا ویرایش این رکوردها با پیامی مانند زیر مواجه میشوند:
رکوردهای MX در زیردامنهها قابل تغییر نیستند. لطفاً با پشتیبانی تماس بگیرید.
این پیام به این معنی نیست که مشکلی در تنظیمات دامنه شما وجود دارد. در بسیاری از موارد، این رکوردها بخشی از ساختار داخلی سرویس میزبانی هستند و نیازی به تغییر ندارند.
هنگام ایجاد یک حساب هاست، سیستم معمولاً یک دامنه اصلی داخلی برای حساب ایجاد میکند. این دامنه معمولاً یک زیردامنه تصادفی است که فقط برای شناسایی داخلی حساب استفاده میشود.
مثال:
abc12345.example-host.com
این نوع دامنهها معمولاً:
به همین دلیل، رکورد MX مربوط به این دامنهها را میتوانید نادیده بگیرید.
رکوردهای MX دامنه داخلی توسط سیستم هاست مدیریت میشوند و کاربران امکان تغییر یا حذف آنها را ندارند. این محدودیت برای حفظ عملکرد صحیح سرویس ایجاد شده است و مشکلی برای دامنههای شخصی شما ایجاد نمیکند.
اگر قصد دارید رکوردهای MX دامنه اصلی خودتان را تغییر دهید، باید فقط رکوردهایی را ویرایش کنید که در ستون Domain مربوط به همان دامنه نمایش داده میشوند.
فرض کنید چند دامنه در حساب خود دارید: example.com، testsite.com و یک دامنه داخلی ایجادشده توسط هاست.
اگر میخواهید رکورد MX دامنه example.com را تغییر دهید، فقط رکوردهایی که در بخش Domain برای example.com نمایش داده شدهاند، روی همان دامنه اعمال میشوند.
رکورد MX مربوط به دامنه داخلی یا سایر دامنهها هیچ ارتباطی با example.com ندارد.
خیر. هر رکورد MX فقط روی همان دامنهای اثر میگذارد که برای آن ساخته شده است. برای مثال:
اگر دامنه داخلی هاست یک رکورد MX مانند mail.example-host.com داشته باشد، این تنظیم فقط برای همان دامنه داخلی استفاده میشود.
اما اگر برای دامنه شخصی خود example.com رکورد MX دیگری تنظیم کرده باشید، ایمیلهای این دامنه طبق همان تنظیمات جدید مدیریت خواهند شد.
بنابراین وجود یک رکورد MX غیرقابل تغییر در دامنه داخلی، باعث اختلال در دریافت ایمیل دامنه اصلی شما نمیشود.
خیر. رکورد MX فقط مشخص میکند که ایمیلهای دریافتی یک دامنه باید به کدام سرور ارسال شوند. این رکورد تعیین نمیکند که چه کسی میتواند از طرف دامنه شما ایمیل ارسال کند.
برای ارسال ایمیل باید تنظیمات دیگری مانند موارد زیر بررسی شوند:
برای مثال، اگر سایت شما نمیتواند ایمیل ثبتنام یا فرم تماس ارسال کند، تغییر رکورد MX معمولاً مشکل را حل نمیکند.
در صورت وجود مشکل در ارسال ایمیل:
ایجاد رکوردهای DKIM در هاست رایگان
برای اینکه سرویسهای ایمیل بتوانند به صورت معتبر و قابل اعتماد از طرف دامنه شما ایمیل ارسال کنند، باید تنظیمات احراز هویت ایمیل مانند SPF و DKIM را برای دامنه خود فعال کنید.
این رکوردها به سرویسهای دریافتکننده ایمیل کمک میکنند تا تشخیص دهند پیام ارسالشده واقعاً از طرف دامنه شما ارسال شده و از جعل ایمیل جلوگیری شود.
در حالی که تنظیم رکورد SPF معمولاً سادهتر است، ایجاد رکورد DKIM ممکن است به تنظیمات DNS بیشتری نیاز داشته باشد.
رکوردهای DKIM معمولاً به صورت TXT Record در تنظیمات DNS دامنه ایجاد میشوند. با این حال، در بسیاری از سرویسهای هاست رایگان امکان ایجاد مستقیم رکوردهای TXT سفارشی وجود ندارد.
به همین دلیل، اگر سرویس ایمیل شما فقط رکورد DKIM از نوع TXT ارائه دهد، نمیتوانید آن را مستقیماً از طریق DNS هاست رایگان اضافه کنید. اما این محدودیت به معنی غیرممکن بودن استفاده از DKIM نیست.
اگر مالک دامنه اختصاصی خود هستید، میتوانید مدیریت DNS دامنه را به یک سرویس DNS دیگر منتقل کنید.
برای مثال میتوانید از سرویسهایی مانند موارد زیر استفاده کنید:
با انتقال مدیریت DNS، کنترل کامل رکوردهای دامنه در اختیار شما قرار میگیرد و میتوانید رکوردهای مختلف مانند TXT، MX، SPF، DKIM و DMARC را بدون محدودیت ایجاد کنید.
این روش یکی از بهترین راهها برای مدیریت حرفهای دامنه و ایمیلهای سازمانی است.
اگرچه بیشتر سرویسهای ایمیل DKIM را به صورت رکورد TXT ارائه میکنند، اما برخی سرویسها امکان ایجاد DKIM با استفاده از CNAME Record را نیز فراهم میکنند.
در این روش، به جای قرار دادن کلید DKIM در DNS دامنه، یک رکورد CNAME ایجاد میکنید که به سرورهای سرویس ایمیل اشاره میکند.
مزیت این روش:
اگر سرویس ایمیل شما DKIM را به شکل CNAME ارائه کند، میتوانید این رکوردها را در بخش DNS دامنه خود اضافه کنید.
فعالسازی DKIM مزایای مهمی برای ارسال ایمیل دارد:
برای سایتهایی که ایمیلهای ثبتنام، اطلاعرسانی یا خبرنامه ارسال میکنند، فعال بودن DKIM بسیار توصیه میشود.
اگر در هاست رایگان امکان ایجاد TXT برای DKIM وجود ندارد، میتوانید از این راهکارها استفاده کنید:
برای بهترین نتیجه در اعتبار ایمیلها، توصیه میشود هر سه رکورد را فعال کنید:
با فعال کردن همزمان این سه رکورد، احتمال اسپم شدن ایمیلها به شدت کاهش مییابد.
پاسخ به سوالات رایج درباره ایمیل و سرویسهای SMTP
تابع mail() در هاستهای اشتراکی محدود است. بهترین راهکار استفاده از SMTP خارجی مانند Gmail یا سرویسهای تخصصی ایمیل است. برای وردپرس، از آموزش وردپرس کمک بگیرید.
با استفاده از PHPMailer در سایتهای PHP یا افزونه WP Mail SMTP در وردپرس و وارد کردن اطلاعات SMTP جیمیل با App Password.
رکورد MX مشخص میکند ایمیلهای دریافتی به کدام سرور هدایت شوند. باید رکوردهای MX سرویس ایمیل خود را در DNS دامنه اضافه کنید. برای جزئیات به آموزش دامنه و DNS مراجعه کنید.
در هاست رایگان امکان ایجاد مستقیم TXT برای DKIM نیست، اما با انتقال DNS به Cloudflare یا استفاده از DKIM نوع CNAME قابل تنظیم است.
این رکوردها مربوط به دامنه داخلی حساب هاست هستند و روی دامنه اختصاصی شما تأثیری ندارند.
تمامی حقوق مادی و معنوی این سایت متعلق به هاست رایگان VCP است. © ۱۴۰۵
برای دریافت هاست رایگان و مطالعه مقالات آموزشی همین حالا اقدام کنید.