Mailtrap và Testing

627

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.

7bb7dcd77c901e27a31248f5035535c48bc4a791

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.

aecbe27380c72393ec80768d948d243ef54807e1

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.

Screen Shot 2016-09-29 at 3.18.51 PM

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

12b7781736c4aebe05939a275d27d44c8f2f7d0e

  1. hô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ó.

3f72e394e25771178db9e3400b665b9df9d684fd

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

eb4e76dbde79ac36bc815606df69777ba427b477

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.

cebef74bfdb7f22e871138fb6b8e2a6e3b64bd3d

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:

8b518676502ed7855e910d4140843a4b471b219d

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.

62c37a4c2e1d77e5d0cea128b441784ec6fa6a91

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

5721979dd08a012972b25863fa8856589f7d49fb

Để 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:

a61922b7e34ce19680a3d46f2f32eeee38824329Trong 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.

7630852046c9dd06dd7c9ea99c7c8eef1a3cab06

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

67aa37bc8059798ed7dd2acdd26fce8b8aa90fd2

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.

f0bfe1321408b4c2aed1246776957c8954cde11d

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:

0b8db7f31e74e7425486041b561307ec62fc76b9

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

af837cda2d3ff709a392b2acd8f18b2bed669b47

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:

c8a7fa5b8ba37f66a3dd9c18a467a3cb36768fb2

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.

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.

b08ca71368a1d08bea1579ae0cc6075cdc01f5c1

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

af1bf2d57b11e721aea9a627c02408d6066cdedc

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 :P), 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/

Techtalk via Viblo

CHIA SẺ