Mailtrap và Testing

Có một số bài toán bạn thường gặp trong Testing:

  • Bạn phải test một hệ thống có chức năng gửi email tới các user đã được đăng ký. Nhưng các user này đều là các user thật của hệ thống. Tôi đảm bảo, nếu bạn cứ thế mà test, các thượng đế của bạn sẽ nhận được mail rác tới tấp như nấm sau mưa, thật phiền phức và vi phạm bảo mật.

  • Hay ít nghiêm trọng hơn là việc bạn phải gửi mail cho cả một list địa chỉ mail đã đăng ký, có tài khoản của bạn, có tài khoản của người khác, làm sao để xác nhận nếu không trực tiếp mở tất cả những hòm mail đó ra?

Hẳn là bạn không muốn thế. Vậy phải làm sao để xác nhận việc test mail mà không gây phiền phức đến các user khác?

Mailtrap là một giải pháp khá tuyệt vời dành cho bạn.

mailtrap-home.jpg

Mailtrap cung cấp một máy chủ SMTP giả (fake SMTP server) dành cho đội ngũ phát triển. Được sử dụng để test các emails được gửi từ các môi trường pre-production và môi trường test với dữ liệu thực tế mà vẫn tránh được nguy cơ gửi thư rác (test email) tới các khách hàng thật của hệ thống cần test. Nó còn cho phép bạn tự động forward mail đến hộp thư của bạn thường xuyên, chia sẻ với team của bạn và nhiều hơn nữa!

Về cơ bản, bạn chỉ cần đăng ký một tài khoản sử dụng Mailtrap, setting đồng bộ với project code của app cần test, và gửi tất cả các email cần test của môi trường pre-production tới các địa chỉ email cần nhận mail thông báo ^^. Tất cả các email đó sẽ được gửi tới fake SMTP Mailtrap server thay vì gửi đến các email mà bạn đã chỉ định.

123.png

Sau đó, bạn có thể view và kiểm tra các email của bạn trong giao diện thân thiện của Mailtrap.

Nếu dự án của bạn nhỏ, chỉ cần test 1 user tại 1 thời điểm và số lượng email cần test không quá lớn, bạn có thể sử dụng miễn phí Mailtrap. Nhưng với các dự án lớn, cần test với nhiều user, tương ứng với nhiều inbox khác nhau, thêm vào đó số lượng email cần test lớn hơn 50 mail/inbox thì chi phí bạn cần trả để sử dụng Mailtrap sẽ dao động vào khoảng từ $120 đến $300 mỗi năm tùy vào nhu cầu của bạn.

pricing (1).jpg

I. Các tính năng cơ bản của Mailtrap:

33.png

  1. Không bao giờ xảy ra việc spam mail các khách hàng thật bởi những sơ suất của đội phát triển
  2. Phân tích email cho spam và blacklist
  3. Test HTML cho việc hỗ trợ bởi các common email clients
  4. Mặc định bảo mật (HTTPS & TLS)
  5. Cài đặt nhanh chóng và dễ dàng bằng cách dùng config code
  6. Cải thiện RESTful & POP3 API autotests
  7. Tự động Forward emails tới những người cần chúng
  8. Sắp xếp các Email test vào hộp thư đặc biệt
  9. Chia sẻ inboxes với team của bạn

II. Làm sao để bắt đầu với Mailtrap

1. Đăng ký tài khoản:

Bạn có thể dễ dàng đăng ký một tài khoản Mailtrap bằng các tài khoản email sẵn có của bạn, cũng có thể dùng tài khoản Google hoặc Github sẵn có.

11.png

Ở đây tôi sử dụng tài khoản Gmail của mình.

12.png

Sau khi đăng ký và đăng nhập thành công, bạn có thể nhìn thấy Demo inbox trong giao diện của Mailtrap.

Nếu sử dụng tài khoản trả phí, bạn có thể tạo thêm nhiều inbox nữa, mỗi inbox sẽ được tương ứng với một hệ thống gửi mail khác nhau.

14.png

2. Cấu hình Mailtrap:

Tiếp theo, chúng ta sẽ setting Mailtrap trong môi trường phát triển dự án của bạn.

Mở inbox, click vào "SMTP Settings" tab, bạn sẽ thấy với mỗi Inbox của Mailtrap thì sẽ có những thông tin về SMTP server riêng:

15.png

Bạn có thể reset những thông tin này bất cứ khi nào bạn muốn.

Mailtrap cung cấp một loạt các example cho việc cấu hình, sự lựa chọn cấu hình nào sẽ tùy thuộc vào loại dự án của bạn. Khi có nhiều Inbox, bạn có thể cấu hình mỗi Inbox với một dự án có loại khác nhau.

12423423423423.png

Ví dụ: Cấu hình với Laravel project

17.png

Để cho đơn giản, chúng ta lấy ví dụ với một app Laravel nhỏ có chức năng reset password của tài khoản:

screenshot_2016_9_28 (1).png

Trong project soucecode của app này, mở file cấu hình environment và điền các thông số cấu hình SMTP server mail của Mailtrap vào các mục tương ứng.

18.png

Save lại những thay đổi, và hãy xem kết quả!

4 from 2016-09-27 10-17-23.png

Sau khi gửi yêu cầu reset password tới một email bất kỳ nào đó, thông thường email reset password sẽ được gửi đến đúng địa chỉ email được chỉ định.

Nhưng khi dùng Mailtrap, địa chỉ email này sẽ không nhận được mail thông báo password reset nữa, thay vào đó Mailtrap server sẽ "bắt" mail này lại và lưu trong inbox đã được setting. Và chúng ta có thể kiểm tra nội dung reset password mail trong inbox của Mailtrap.

Screenshot from 2016-09-28 16:04:16.png

Trong phần nội dung email nhận được, có rất nhiều tab để bạn có thể chọn, chúng cho phép bạn kiểm tra nội dung email đã nhận được bằng nhiều định dạng khác nhau:

Mặc định là view email dạng HTML. Ngoài ra còn có view theo định dạng HTML source:

20.png

Hoặc định dạng kiểu Text, Raw:

21.png

Bạn cũng có thể kiểm tra HTML của email cần kiểm tra xem đã đúng chuẩn chưa bằng việc chọn tab "Check HTML", kết quả nhận được là bảng phân tích những dòng HTML code đang bị vi phạm quy chuẩn:

22.png

Cuối cùng, 1 tab mà bạn không thể bỏ qua - "Analysis" tab, cung cấp cho bạn các phân tích, báo cáo về những điểm spam và blacklist của message và server của bạn.

23.png

Với những hỗ trợ như vậy, Mailtrap là một cách hiệu quả để debug nội dung và markup của các email message mà bạn đã gửi đi.

3. Chia sẻ inbox và các message với team của bạn

Nếu team của bạn có nhiều members khác cần dùng đến chức năng gửi mail, và mọi người cần truy cập vào inbox của bạn để check email đã được gửi? Vậy có 2 cách để bạn có thể share inbox của mình:

  1. Khi bạn của bạn dùng tài khoản miễn phí:

Không có cách nào khác là bạn share luôn cả tài khoản của bạn cho họ, để họ có thể access vào mailbox của bạn trên thiết bị của họ ^^.

  1. Khi họ dùng tài khoản trả phí:

Bạn có thể mời tất cả những developer (đều có tài khoản trả phí) cùng truy cập vào mỗi mailbox thông qua link được cung cấp (link này sẽ thay đổi khi bạn click "Regenerate share link" link). Các bước share như sau:

  • Bước 1. Click "Company users" link trên màn hình Settings của inbox bạn muốn share.

24.png

  • Bước 2. Gửi link được hệ thống generate tới user mà bạn muốn invite.

25.png

Bạn cũng có thể dễ dàng thấy chức năng tự động forward tất cả các email mà Mailtrap nhận được tới những người cần nhận. Tuy nhiên chức năng này cũng chỉ được dành cho các tài khoản mất phí mà thôi ^^.

Nếu bạn đã có tài khoản Mailtrap trả phí, và đã sử dụng nó một cách hiệu quả, đừng quên share lại với tôi và mọi người nữa nhé.

Kết luận: Nếu bạn là một Tester, bạn không được phép "đụng chạm" vào sourcecode. Vậy thì bạn không thể cấu hình được rồi, giờ phải làm sao để test việc gửi mail bằng Mailtrap? Đơn giản lắm, hãy nhờ dev của bạn cấu hình trên máy của bạn ấy, rồi xin cái tài khoản Mailtrap của bạn ấy về (đấy là trong trường hợp bạn dùng tài khoản free) hoặc nhờ bạn ấy share inbox cho (trong trường hợp bạn dùng tài khoản xịn 😛), trở về máy của bạn, đăng nhập Mailtrap, thế là xong! Rồi, bạn có thể thoải mái test chức năng gửi mail của hệ thống, mà không còn sợ mail rác mà bạn tạo ra làm ảnh hưởng tới các user thật của hệ thống nữa rồi.

Bài viết tham khảo từ các link: https://code.tutsplus.com/tutorials/introduction-to-mailtrap-a-fake-smtp-server-for-pre-production-testing--cms-23279

https://mailtrap.io/