*
Mailgun là một khối hệ thống các API mạnh mẽ mẽ, hỗ trợ việc gửi, dìm và cai quản các email từ khối hệ thống của bạn cho tới các email được nhờ cất hộ từ những dịch vụ email khác. Trong nội dung bài viết này, bọn họ sẽ thiết kế một thệ thống email nội cỗ dựa trên một số trong những tính năng nhưng mà Mailgun cung cấp.

Bạn đang xem: Mailgun là gì

Tạo thông tin tài khoản và cấu hình Mailgun

Chúng ta vào showroom của mailgun với đi đến đường truyền này để làm cho mình một tài khoản. Sau thời điểm điền không thiếu thốn các tin tức cần thiết, Mailgun đã gửi một e-mail xác nhận. Việc tiếp theo sau tất nhiên đang là kiểm tra thư điện tử và làm theo hướng dẫn để kích hoạt thông tin tài khoản Mailgun.

Sau khi đang kích hoạt tài khoản và singin thành công, họ sẽ được chuyển mang lại trang cai quản trị của Mailgun. Mặc định Mailgun cung cấp cho chúng ta một tên miền để hỗ trợ cho câu hỏi test trong quá trình phát triển. Nếu như đã bao gồm một vps SMTP riêng, họ hoàn toàn hoàn toàn có thể tạo bắt đầu hoặc sửa chữa domain khoác định đó.

*

Hệ thống mail sẽ tiến hành xây dựng dựa trên ý tưởng lưu lại cục bộ những e-mail gửi đi cũng như các thư điện tử từ các khối hệ thống khác gửi về. Câu hỏi lưu những email gửi đi từ bỏ hệ thống dễ dàng và đơn giản chỉ là việc tạo mới một phiên bản ghi vào bảng email. Vậy còn chiều ngược lại, khi gồm một e-mail từ phía bên ngoài gửi về, làm phương pháp nào chúng ta có thể lưu này lại trong khối hệ thống của mình? với Routes của Mailgun, bọn họ đã có giải pháp cho vấn đề đó. Mỗi một route sẽ giống hệt như một cỗ lọc, chức năng chính của chính nó là chuyến qua (Forward) các email nhưng nó nhận được (Catch All) mang lại một địa chỉ email hay một url nào kia hoặc dễ dàng và đơn giản là chẳng làm cái gi cả nếu khách hàng coi đó là 1 email rác.

*

Chúng ta vào băng thông này nhằm tạo mới một route. Trong màn hình hiển thị tạo mới route gồm 3 trường đặc biệt quan trọng nhất mà chúng ta cần lưu ý:

Expression Type: Là cỗ lọc khẳng định một e-mail là vừa lòng lệ hay không.Actions: hành động sẽ được triển khai khi một e-mail gửi mang đến là cân xứng với bộ lọc ở trên. Khoác định, email sẽ được chuyển tiếp vào url mà họ chỉ định trong trường Forward.Priority: vào trường hợp bọn họ có những route và một email có thể là vừa lòng lệ với rất nhiều route trong những đó thì đấy là thuộc tính để khẳng định xem thư điện tử đó sẽ tiến hành ưu tiên xử lý ở route như thế nào trước.

Như vậy chúng ta đã xong xuôi xong việc cấu hình Mailgun, việc còn sót lại là xây dựng hệ thống email của riêng mình

Xây dựng hệ thống email

Trong phần này, bọn họ sẽ sử dụng framework Ruby on Rails nhằm minh họa cho câu hỏi thực hiện.

1. Lưu trữ email

Tạo bảng e-mail có các trường to, cc, bcc, subject...Các ngôi trường của bảng này là tùy ở trong vào mục đích của hệ thống đào bới nhưng yêu cầu luôn đảm bảo an toàn được tính bảo mật và thuận lợi xác định được người gửi, bạn nhận vào loại thư điện tử tương ứng.

Người cần sử dụng trong khối hệ thống sẽ gồm một thư điện tử riêng có dạng . Phải chắc chắn là là bọn họ đã đk domain của chính mình trong phần tên miền trên Maingun.

2. Gởi mail qua Mailgun

Mặc định ActionMailer của Rails thực hiện deliver_method là :smpt, để áp dụng với Mailgun, chúng ta cần sửa lại config như sau:

config.action_mailer.delivery_method = :mailgunconfig.action_mailer.mailgun_settings = api_key: ENV<"MAILGUN_API_KEY">, domain: ENV<"MAILGUN_DOMAIN">,Để dễ ợt cho câu hỏi gửi và cất giữ email, họ tạo ra một class nhằm thực hiện công việc này:

class UserMailer ActionMailer::Base def send_mail email mail to: email.to, subject: email.subject email.save endendChúng ta tạo nên một object email tương xứng với các thông tin mà người dùng mong muốn, thư điện tử này vẫn được tự động hóa lưu lại ngay sau khi nó được nhờ cất hộ đi.

3. Nhận mail về hệ thống

Khi bao gồm một email nào kia gửi đến một add có dạng , Mailgun sẽ bắt được nó thông qua bộ lọc mà bọn họ đã thiết lập, tiếp nối nó sẽ lựa chọn những action tương ứng. Trong trường vừa lòng này, email sẽ được forward về một url trỏ đến một controller mà chúng ta đã khẳng định từ trước. Tại trên đây email sẽ được xử lý và lưu vào database.

Để hoàn toàn có thể test được trong quá trình phát triển, họ sẽ phải sử dụng ngrok nhằm public địa chỉ local ra bên ngoài, địa chỉ cửa hàng đó thông thường có dạng http://872f67bd.ngrok.io. Cùng với đó họ sẽ áp dụng domain mặc định nhưng Mailgun đã tạo ra ra sau khoản thời gian đăng cam kết tài khoản. Domain này thông thường có dạng sandbox123xyz.mailgun.org. Đến đây, bọn họ đã hoàn toàn có thể dùng email cá nhân để gửi một thư điện tử vào địa chỉ cửa hàng bất kỳ, giải sử chính là

Sau khi nhận ra email, Mailgun sẽ khởi tạo một request cùng với method là POST cho tới url mà chúng ta đã định nghĩa.

*

Trong trường phù hợp này chúng ta muốn Mailgun gửi request về đến EmailsController thì trong phần fowards địa chỉ cửa hàng url đã là http://872f67bd.ngrok.io/emails

class EmailsController ApplicationController def create ReceiveEmailFromMailgun.new(params).perform endendService ReceiveEmailFromMailgun sẽ có nhiệm vụ nhận cách xử lý params được nhờ cất hộ tử Mailgun cùng lưu thư điện tử vào trong hệ thống.

Xem thêm: Tiếng Anh Chuyên Ngành Rượu Vang Tiếng Anh Là Gì, Những Thuật Ngữ Vang Mà Bạn Chưa Biết

class ReceiveEmailFromMailgun def initialize params
params = params kết thúc def perform ActiveRecord::Base.transaction bởi vì users.each clone_email user end true rescue false over private attr_reader :params def clone_email user email = user.emails.build email_params(user) if email.valid? email.update_attribute :attachments, email_attachments else raise ActiveRecord::Invalid kết thúc end def users

Summary

Như vậy bọn họ đã thuộc nhau đi tìm hiểu về phong thái sử dụng Mailgun nhằm xây dựng hệ thống gửi dấn mail đến riêng mình. Tùy vào chức năng và yêu ước của từng hệ thống mà cấu trúc cũng như các phương pháp được sử dụng hoàn toàn có thể sẽ khác nhau. Nội dung bài viết giới thiệu một vài trong không hề ít các tác dụng mạnh mẽ nhưng Mailgun cung cấp. Mong muốn nó vẫn hữu ích khi chúng ta cần sản xuất một hệ thống email mà chúng ta cũng có thể chủ hễ trong việc thống trị nó.