Sử dụng gmail để gửi mail trong Drupal 7.x

Việc sử dụng email để thông báo các hoạt động của website đến quản trị viên là điều cần thiết, ví dụ như có thành viên đăng ký mới cần được duyệt hay góp ý từ khách hàng cho sản phẩm thông qua hệ thống webform. Mặc định Drupal sử dụng hàm mail() để gửi email nhưng một số nhà cung cấp hosting đã vô hiệu hóa hàm này trên server để tránh hiện tượng spam mail, điều này khiến Drupal không thể tự gửi email khi cần thiết. Giải pháp tốt nhất là sử dụng một SMTP server bên ngoài. Bài viết dưới đây sẽ hướng dẫn từng bước cụ thể để Drupal có thể gửi mail thông qua SMTP server của Gmail, bạn cũng có thể áp dụng tutorial cho bất kì SMTP server nào có khả năng sử dụng.

Bước 1: Cài đặt và kích hoạt module SMTP

  • Download module SMTP Authentication Support tại https://drupal.org/project/smtp
  • Đặt thư mục smtp vào sites/all/modules của Drupal.
  • Kích hoạt module smtp như bình thường.

Bước 2: Truy cập trang cấu hình của stmp tại admin/config/system/smtp và điền các thông tin như sau:

Install options: Click On để đưa module vào chế độ làm việc.

+ SMTP server nhập: smtp.gmail.com
+ SMTP Port nhập: 465
+ Use encrypted protocol: Chọn "User SSL"

* Bạn có thể tham khảo danh sách các SMTP server / SMTP Port tại đây.

Bước 3: Xác nhận tài khoản Gmail dùng cho site Drupal

Có một vấn đề nhỏ gặp phải khi sử dụng SMTP server của Gmail đó là việc xác nhận truy cập tài khoản mail. Giải thích: nếu bạn thường xuyên check mail ở một máy tính và ở đâu đó phát sinh một truy cập mới đến hòm thư, ví dụ yêu cầu truy cập được gửi đến từ trang web của bạn (Website sử dụng module SMTP Authentication Support) thì Gmail sẽ cho đó là một sự xâm phạm bảo mật và sẽ "block" nó lại, làm cho module SMTP không gửi được mail vì truy cập bị từ chối.

Để giải quyết vấn đề trên, bạn phải kích hoạt chức năng bảo vệ 2 tầng (2-step verification) của tài khoản Gmail mà bạn sở hữu, sau đó tạo một "giấy phép riêng" dành cho truy cập từ website của bạn, để nó không bị "block", cách thức tiến hành như sau:

  • Mở 1 tab mới và truy cập vào gmail bằng tài khoản sẽ sử dụng để gửi mail thông qua SMTP, để nguyên tab cũ dành cho các bước cuối.
  • Tìm vào trang cấu hình tài khoản Gmail (https://www.google.com/settings/account)

  • Trên trang Account, truy cập mục "Security" phía bên trái > click Edit bên phải của "2-step verification"

  • Trên trang hiện ra, click "Start Setup" > Đăng nhập tài khoản một lần nữa sau đó tiến hành từng bước một theo hướng dẫn để hoàn thành việc kích hoạt chức năng bảo vệ 2 tầng. Chú ý: Quý trình này cần sử dụng SMS để nhận mã kích hoạt, vì vậy chắc chắn bạn cần phải có một số phone cố định.
  • Sau khi chức năng bảo vệ 2 tầng được kích hoạt, quay trở lại trang thông tin tải khoản > Security, bạn sẽ thấy trạng thái 2-step verification là ON, click vào "Manage your application specific passwords" > Đăng nhập lần nữa, click "Remind me later" nếu có trang thông báo hiện ra

  • Tiếp theo, nhập tên website có sử dụng module SMTP cần lấy xác nhận tài khoản vào ô Name > Click "Generate password". Đây chỉ là một cái tên gợi nhớ dành cho việc quản lý các xác nhận tài khoản, bạn có thể nhập bất cứ cái gì nhưng nên sử dụng tên website là tốt nhất.

Bước 4: Đây là bước quan trọng, một dãy số gồm 12 ký tự bất kì sẽ hiện ra trong một khung màu vàng sau khi click "Generate password", chúng chỉ hiện ra một lần duy nhất và sẽ biến mất sau khi click Done bên dưới. Copy 12 ký tự này sau đó quay lại trang cấu hình SMTP server đã dừng lại ở bước 2 bên trên và paste nó vào trong ô Password của "SMTP Authentication", rồi nhập lại email của bạn vào ô Username bên trên (nếu là Gmail thì nhập cả @gmail.com vào)

  • Trong mục "Email Options", nhập nốt các thông tin cho E-mail from address và E-mail from name
  • Có thể nhập email test vào E-mail address to send a test e-mail to để kiểm tra xem SMTP server thông qua Drupal có hoạt động tốt không.
  • Click Save configuration để hoàn tất việc cấu hình SMTP server cho Drupal. Các thông báo màu xanh sẽ xuất hiện để xác nhận cấu hình đã được lưu, nếu có lỗi xảy ra, bạn có thể vào trang log để kiểm tra.

Chúc bạn thành công !!