Khắc phục lỗi WordPress Mailgun Email Failed: Nguyên nhân và giải pháp toàn diện

wordpress mailgun email failed

WordPress sử dụng Mailgun để gửi email là giải pháp phổ biến nhờ độ tin cậy cao. Tuy nhiên, nhiều quản trị viên gặp phải lỗi “WordPress Mailgun Email Failed”. Lỗi này thường hiển thị khi email không thể gửi qua API Mailgun hoặc SMTP, ảnh hưởng đến việc gửi thông báo đăng ký, đặt lại mật khẩu, xác nhận đơn hàng. Hiểu rõ nguyên nhân và cách xử lý giúp bạn duy trì hoạt động liên lạc ổn định cho website.

WordPress Mailgun Email Failed là gì?

wordpress mailgun email failed - Hình 5

Đây là thông báo lỗi xuất hiện khi WordPress không thể kết nối thành công tới máy chủ Mailgun hoặc bị từ chối gửi thư. Lỗi có thể đến từ cấu hình plugin sai, tài khoản Mailgun bị khóa, domain chưa được xác thực, hoặc hạn chế từ phía nhà cung cấp dịch vụ hosting.

Nguyên nhân chính gây ra lỗi WordPress Mailgun Email Failed

wordpress mailgun email failed - Hình 4

Cấu hình API hoặc SMTP không chính xác

Plugin Mailgun cho WordPress yêu cầu nhập API Key (Private Key) và Domain vùng (US hoặc EU). Nếu bạn copy sai ký tự, chọn sai vùng, hoặc dùng API Key của tài khoản khác, kết nối sẽ thất bại. Kiểm tra lại trong Dashboard Mailgun: Settings → API Keys → Private API key.

Domain chưa được xác thực (Domain Verification)

Mailgun yêu cầu bạn thêm và xác thực quyền sở hữu domain gửi thư. Nếu chưa thực hiện hoặc các bản ghi DNS (TXT, MX, SPF) chưa lan tỏa, hệ thống từ chối gửi. Đây là nguyên nhân phổ biến khi email gửi không tới hộp thư hoặc bị lỗi “domain not verified”.

Hết hạn mức gửi (Daily/ Monthly Limit) hoặc tài khoản bị suspend

Mailgun có giới hạn số lượng email cho mỗi tài khoản miễn phí. Nếu vượt quá 10.000 email/tháng, tài khoản tạm thời bị tạm ngưng. Ngoài ra, nếu có nhiều email bị bounce hoặc spam complaint, Mailgun có thể khóa tài khoản.

Xung đột plugin hoặc theme

Một số plugin bảo mật, caching, hoặc tối ưu hóa có thể chặn curl request tới API Mailgun. Theme không tương thích với PHP cũng gây lỗi khi gửi email qua SMTP.

Vấn đề về hosting: chặn outbound connection

Nhiều nhà cung cấp shared hosting chặn các kết nối ra ngoài qua cổng 443 hoặc 587. Nếu server của bạn không thể gọi tới api.mailgun.net, tất cả yêu cầu gửi mail đều thất bại.

Hướng dẫn khắc phục lỗi WordPress Mailgun Email Failed từng bước

wordpress mailgun email failed - Hình 3

Bước 1: Kiểm tra trạng thái tài khoản Mailgun

    • Đăng nhập vào Mailgun Dashboard.
    • Vào mục “Domains” → chọn domain đang dùng → xem trạng thái “Verified” (phải là Yes).
    • Kiểm tra “Sending” → “Logs” để xem các email gần đây bị rejected với mã lỗi nào.
    • Nếu thấy mã lỗi 401 hoặc 403, nguyên nhân là API Key sai hoặc tài khoản bị suspend.

    Bước 2: Cập nhật cấu hình plugin Mailgun trong WordPress

    Vào Settings → Mailgun trong admin. Đảm bảo:

    Trường Giá trị mẫu Lưu ý
    API Key key-xxxxxxxxxxxx Dán chính xác, không có khoảng trắng
    Domain mail.yourdomain.com Phải khớp với domain đã thêm trong Mailgun
    Region US hoặc EU Chọn đúng vùng theo tài khoản
    Use SMTP Yes/No Thử cả hai chế độ nếu API bị lỗi

    Lưu lại và kiểm tra bằng tính năng “Test Email” trong plugin.

    Bước 3: Xác thực domain lại từ đầu

    1. Vào Mailgun → Domains → chọn domain → “Verify Domain”.
    2. Làm theo hướng dẫn thêm bản ghi TXT, MX, và SPF vào DNS của tên miền.
    3. Chờ ít nhất 30 phút đến 1 giờ để DNS propagate.
    4. Bấm “Check DNS Records” cho đến khi tất cả đều xanh.

    Bước 4: Kiểm tra hosting có chặn outbound hay không

    Liên hệ nhà cung cấp hosting hoặc dùng thử cách gửi email qua PHP mặc định. Nếu email gửi được bằng wp_mail() nhưng không gửi được qua Mailgun, rất có thể server chặn kết nối tới api.mailgun.net. Yêu cầu họ mở cổng 443 và 587, hoặc chuyển sang plugin SMTP alternative.

    Bước 5: Tắt tạm thời các plugin xung đột

    Deactivate lần lượt các plugin bảo mật, tối ưu, cache (Wordfence, W3 Total Cache, SG Optimizer). Sau đó kiểm tra gửi mail. Nếu hoạt động, kích hoạt từng plugin để tìm thủ phạm.

    So sánh: API vs SMTP khi gửi mail qua Mailgun

    Phương thức API SMTP
    Tốc độ Nhanh hơn, không cần xác thực liên tục Chậm hơn do yêu cầu handshake
    Bảo mật Sử dụng HTTPS native Cần SSL/TLS
    Dễ cấu hình Chỉ cần API Key và Domain Cần username, password, máy chủ SMTP
    Khả năng ghi log Chi tiết, qua Dashboard Ít chi tiết hơn
    Khắc phục lỗi Thường ổn định hơn trên shared hosting Dễ gặp lỗi xác thực và block port

    Nếu lỗi WordPress Mailgun Email Failed xuất hiện khi dùng SMTP, hãy thử chuyển sang chế độ API để kiểm tra.

    Sai lầm thường gặp khi cấu hình Mailgun cho WordPress

    wordpress mailgun email failed - Hình 2
    • Dùng API Key của tài khoản sandbox (test domain): Các tài khoản sandbox chỉ gửi được tới email đã xác nhận. Luôn tạo domain thật và dùng Private Key chính.
    • Không cập nhật vùng (region): Nếu tài khoản đăng ký ở vùng EU, bạn phải dùng api.eu.mailgun.net, nếu đặt US sẽ lỗi.
    • Bỏ qua kiểm tra DNS propagation: Nhiều người thêm record nhưng chưa kịp lan tỏa đã bấm xác nhận, gây lỗi domain không verified.
    • Cấu hình SSL cho plugin không khớp: Một số bản cũ yêu cầu chọn “Use SSL” nhưng server không hỗ trợ, dẫn đến lỗi kết nối.

Lưu ý quan trọng khi sử dụng Mailgun với WordPress

Luôn backup cấu hình trước khi thay đổi. Sử dụng tính năng log của plugin Mailgun để ghi lại chi tiết lỗi. Nếu bạn quản lý nhiều domain, mỗi domain cần được xác thực riêng. Đối với website có traffic cao, nâng cấp lên gói trả phí để tránh vượt hạn mức. Kiểm tra thường xuyên báo cáo bounce và complaint trong Dashboard Mailgun để phát hiện sớm sự cố.

Câu hỏi thường gặp về lỗi WordPress Mailgun Email Failed

wordpress mailgun email failed - Hình 1

Làm sao để biết lỗi do Mailgun hay do plugin?

Vào Mailgun Dashboard → Logs. Nếu thấy email được ghi nhận “Accepted” nhưng không tới hộp thư, vấn đề có thể do spam filter hoặc domain reputation. Nếu log hiển thị “Failed” hoặc “Rejected” kèm mã lỗi, nguyên nhân do cấu hình.

Plugin Mailgun báo lỗi “401 Unauthorized” khắc phục thế nào?

Mã 401 nghĩa là API Key sai hoặc không có quyền. Vào Mailgun Dashboard lấy lại Private Key mới, copy chính xác vào plugin, không thêm khoảng trắng. Kiểm tra region tương ứng.

Có thể dùng cùng lúc Mailgun và plugin SMTP khác không?

Không. Chỉ nên dùng một plugin gửi mail. Nếu đã cài Mailgun và một plugin SMTP khác (như WP SMTP), sẽ xảy ra xung đột. Deactivate tất cả plugin mail khác và giữ lại duy nhất Mailgun.

Gửi test email thành công qua plugin nhưng form trên website vẫn báo lỗi?

Test email thường dùng tài khoản admin, còn form có thể gửi đến email khác. Kiểm tra xem email nhận có bị bounce không. Ngoài ra, một số plugin form builder có cơ chế gửi mail riêng, cần cấu hình thêm ở plugin đó.

Hosting chặn curl thì làm sao gửi mail qua Mailgun?

Yêu cầu hosting bật chức năng curl. Nếu không được, bạn có thể dùng phương thức SMTP với port 587 thay vì API (vì API dùng HTTPS port 443). Tuy nhiên, nếu hosting chặn cả port 587, buộc phải đổi nhà cung cấp hoặc dùng dịch vụ gửi mail qua HTTP proxy.

Kết luận

Lỗi WordPress Mailgun Email Failed có thể được giải quyết triệt để nếu bạn kiểm tra tuần tự từ tài khoản Mailgun, cấu hình DNS, plugin, cho đến môi trường hosting. Ghi nhớ: luôn xác thực domain đúng cách, dùng đúng API Key và region, kiểm tra log thường xuyên. Với hướng dẫn chi tiết trên, bạn có thể tự mình khắc phục mà không cần nhờ đến chuyên gia. Hãy áp dụng ngay để website của bạn không bỏ lỡ bất kỳ email quan trọng nào.

Bài viết cùng chủ đề:

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *