آموزش
ارسال ایمیل در WordPress و WooCommerce
اتصال WordPress و WooCommerce به سندک با SMTP، بدون ویرایش قالب.
آخرین ویرایش: ۲۱ آبان ۱۴۰۵
WordPress و WooCommerce همهی ایمیلهایشان را از تابع wp_mail() میفرستند. کافی است همین تابع را به SMTP سندک وصل کنید. پیش از شروع، دامنهتان را تأیید و یک کلید بسازید.
۱. راز را در wp-config.php بگذارید
راز کلید را در پایگاه دادهی وردپرس یا قالب نگذارید. به wp-config.php (بالاتر از خط «That's all, stop editing») اضافه کنید:
define('SENDAK_SMTP_USER', 'شناسه_کلید');
define('SENDAK_SMTP_PASS', 'sd_live_…');
define('SENDAK_FROM', 'hello@shop.ir');۲. وصل کردن wp_mail به سندک
کد زیر را در یک افزونهی ضروری (wp-content/mu-plugins/sendak.php) بگذارید تا با عوض شدن قالب از بین نرود:
<?php
add_action('phpmailer_init', function ($mail) {
$mail->isSMTP();
$mail->Host = 'smtp.sendak.ir';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
$mail->SMTPAuth = true;
$mail->Username = SENDAK_SMTP_USER;
$mail->Password = SENDAK_SMTP_PASS;
});
// آدرس From باید روی دامنهی تأییدشده باشد.
add_filter('wp_mail_from', fn () => SENDAK_FROM);اگر افزونهی SMTP دارید (مثل WP Mail SMTP)، همین مقدارها را در آن بگذارید: میزبان smtp.sendak.ir، پورت 587، رمزنگاری TLS، احراز هویت روشن، و نام کاربری و رمز از بالا. در افزونهها معمولاً میتوان رمز را از ثابت wp-config.php گرفت؛ همان را فعال کنید.
۳. WooCommerce
WooCommerce از wp_mail() استفاده میکند، پس ایمیلهایش خودکار از سندک میروند. فقط این را بررسی کنید:
- در WooCommerce ← تنظیمات ← ایمیلها، «نشانی فرستنده» را روی همان دامنهی تأییدشده بگذارید.
- یک سفارش آزمایشی ثبت کنید و در «فعالیت» پنل سندک ایمیل را ببینید.
نکته: اگر نشانی فرستنده روی دامنهی تأییدشده نباشد، سندک ایمیل را رد میکند و WordPress معمولاً بیصدا شکست میخورد. اگر ایمیلی نمیرسد، اول «فعالیت» پنل را ببینید و بعد لاگ وردپرس را.
۴. آزمایش
<?php
// موقتی: یک بار باز کنید و فایل را پاک کنید.
add_action('init', function () {
if (isset($_GET['sendak_test']) && current_user_can('manage_options')) {
$ok = wp_mail('you@example.com', 'اولین ایمیل', 'سلام از سندک');
wp_die($ok ? 'ارسال شد' : 'ارسال نشد');
}
});به /?sendak_test=1 بروید (با حساب مدیر). ارسال شد یعنی سندک پذیرفت؛ تحویل را در پنل ببینید. بعد فایل را پاک کنید.
عیبیابی
| نشانه | علت محتمل |
|---|---|
| خطای احراز هویت | نام کاربری شناسهی کلید نیست یا راز ناقص کپی شده |
ارسال نشد | From روی دامنهی تأییدشده نیست؛ یا هاستینگ شما پورت خروجی ۵۸۷ را بسته است (در این حالت پورت 2525 را امتحان کنید) |
| ایمیل میرود ولی به Inbox نمیرسد | SPF و DMARC را بگذارید و در «فعالیت» نتیجه را ببینید |