رفتن به محتوای اصلی
سندک

آموزش

ارسال ایمیل در WordPress و WooCommerce

اتصال WordPress و WooCommerce به سندک با SMTP، بدون ویرایش قالب.

آخرین ویرایش: ۲۱ آبان ۱۴۰۵

WordPress و WooCommerce همه‌ی ایمیل‌هایشان را از تابع wp_mail() می‌فرستند. کافی است همین تابع را به SMTP سندک وصل کنید. پیش از شروع، دامنه‌تان را تأیید و یک کلید بسازید.

۱. راز را در wp-config.php بگذارید

راز کلید را در پایگاه داده‌ی وردپرس یا قالب نگذارید. به wp-config.php (بالاتر از خط «That's all, stop editing») اضافه کنید:

wp-config.php
define('SENDAK_SMTP_USER', 'شناسه_کلید');
define('SENDAK_SMTP_PASS', 'sd_live_…');
define('SENDAK_FROM', 'hello@shop.ir');

۲. وصل کردن wp_mail به سندک

کد زیر را در یک افزونه‌ی ضروری (wp-content/mu-plugins/sendak.php) بگذارید تا با عوض شدن قالب از بین نرود:

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() استفاده می‌کند، پس ایمیل‌هایش خودکار از سندک می‌روند. فقط این را بررسی کنید:

  1. در WooCommerce ← تنظیمات ← ایمیل‌ها، «نشانی فرستنده» را روی همان دامنه‌ی تأییدشده بگذارید.
  2. یک سفارش آزمایشی ثبت کنید و در «فعالیت» پنل سندک ایمیل را ببینید.

نکته: اگر نشانی فرستنده روی دامنه‌ی تأییدشده نباشد، سندک ایمیل را رد می‌کند و WordPress معمولاً بی‌صدا شکست می‌خورد. اگر ایمیلی نمی‌رسد، اول «فعالیت» پنل را ببینید و بعد لاگ وردپرس را.

۴. آزمایش

wp-content/mu-plugins/sendak-test.php
<?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 را بگذارید و در «فعالیت» نتیجه را ببینید

کلید ندارید؟

با پلن رایگان، ۱٬۰۰۰ ایمیل در ماه می‌فرستید.