Cấu hình và gửi email

Hướng dẫn cấu hình và gửi email với tỷ lệ vào inbox cao, gửi email qua SMTP.

Khai báo thư viện

$soc->use_email(string $sender_email, string $sender_name);
  • $sender_email - Địa chỉ email người gửi (From).
  • $sender_name - Tên người gửi.

Gửi email

bool/string $soc->email->send(string $to, string $subject, string $body, string $reply_to=null);
  • $to - Địa chỉ email nhận, nếu có nhiều email thì cách nhau bằng dấu phẩy.
  • $subject - Tiêu đề email.
  • $body - Nội dung email.
  • $reply_to - Email nhận phản hồi.

Hàm sẽ trả về true nếu gửi email thành công và trả về chuỗi thông báo lỗi nếu gửi email thất bại.

Cấu hình SPF

Mặc định thì email được gửi ra từ server và chưa xác thực được địa chỉ email người ($sender_email) gửi là hợp lệ. Khi đó, email sẽ bị rơi vào spam hoặc người nhận sẽ thấy cảnh báo này ở đầu email khi họ mở email:

Để khắc phục tình trạng này, chúng ta cần đảm bảo 2 vấn đề sau:

  1. $sender_email nên là địa chỉ email theo tên miền mà chúng ta đang sở hữu. Ví dụ: Khai báo $sender_email là support@socjsc.com vì socjsc.com là tên miền mà mình sở hữu.
  2. Tên miền cần được thêm vào 1 record TXT với:
    • Name: @ hoặc socjsc.com (đổi tên miền socjsc.com thành tên miền của bạn).
    • Content: v=spf1 ip4:103.229.192.161 include:socjsc.com ~all (đổi địa chỉ IP 103.229.192.161 thành địa chỉ IP của server và socjsc.com thành tên miền của bạn).

Nếu bạn đã cấu hình đúng như hướng dẫn trên thì có nghĩa là email người gửi đã được xác thực và các hệ thống email sẽ không hiện lên cảnh báo nữa.

Gửi email qua kết nối SMTP

Trong trường hợp bạn muốn kết nối và gửi email qua SMTP thì có thể khai báo dòng code sau ngay bên dưới use_email():

$soc->email->smtp(string $host, int $port, string $user, string $pass, string $secure='ssl');
  • $host - Thông tin server SMTP sẽ kết nối.
  • $port - Cổng kết nối.
  • $user - Tên đăng nhập.
  • $pass - Mật khẩu.
  • $secure - Kết nối qua giao thức ssl hoặc tls.

Lưu ý: Bạn vẫn phải thực hiện cấu hình SPF phù hợp với server SMTP mà mình sử dụng để địa chỉ email gửi được xác thực, cũng như đảm bảo email sẽ vào inbox chứ không phải spam.

Các cài đặt khác

// Cập nhật lại email gửi người là noreply@socjsc.com và tên người gửi là No Reply  $soc->email->phpmailer->setFrom('noreply@socjsc.com', 'No Reply');    // Thêm email testcc@socjsc.com nhận CC  $soc->email->phpmailer->addCC('testcc@socjsc.com');    // Thêm email testbcc@socjsc.com nhận BCC  $soc->email->phpmailer->addBCC('testbcc@socjsc.com');    // Gửi file đính kèm /tmp/test.zip với tên là source.zip  $soc->email->phpmailer->addAttachment('/tmp/test.zip', 'source.zip');
09-08-2021

Bài viết liên quan