SMTPRoutes là một máy chủ SMTP nhẹ được xây dựng trên đầu trang của Secure-smtpd.
Đó là những gì bạn sẽ nhận được nếu Sinatra và SMTP đã có một em bé.
đường
Tuyến đường được xác định thông qua một regex được cung cấp trong các tuyến đường kwarg.
từ smtproutes nhập Route
lớp ExampleRoute (Route):
& Nbsp; def my_route (self, đường = r'myroute @ * '.):
& Nbsp; in self.mailfrom.email
Khi gọi một tuyến đường sẽ có quyền truy cập vào các biến dụ sau đây:
- Self.message thông điệp email được phân tích.
- Self.mailfrom một đối tượng liên lạc chỉ ra ai là thông điệp nhận được từ.
- Self.tos một mảng của các đối tượng liên lạc được chiết xuất từ các trường Đến.
- Self.ccs một mảng của các đối tượng liên lạc được chiết xuất từ các trường CC.
- Self.bccs một mảng của các đối tượng liên lạc được chiết xuất từ các trường BCC.
Bất kỳ nhóm đặt tên theo quy định tại các tuyến đường regex sẽ là availble như các biến dụ.
lớp ExampleRoute (Route):
& Nbsp; def open_route (self, đường = r '(Popen) @ (P. *)?'):
& Nbsp; in "% s% s đã gửi thông điệp: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
Tên người gửi xác thực
Email là dễ bị tấn công giả mạo. SMTPRoutes cho phép bạn để cung cấp một đối tượng xác thực để bảo vệ chống lại các.
Một lớp có thể xác thực được cung cấp trong kwarg sender_auth của một tuyến đường.
def spf_route (self, đường = r '(Pspf) @ (P. *)? ", sender_auth = SPFAuth):
& Nbsp; in "% s% s đã gửi thông điệp: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
Hiện nay các phương pháp xác thực người gửi sau được hỗ trợ:
- DKIMAuth chứng nhận sử dụng một chữ ký DKIM.
- SPFAuth chứng nhận sử dụng một bản ghi SPF.
- GmailSPFAuth xác thực chống lại các bản ghi SPF của Google, bất kể người gửi (hữu dụng cho Google Apps).
Bạn có thể cung cấp các phương pháp xác thực nhiều trong kwarg sender_auth, nếu có vượt qua tuyến đường này sẽ được gọi là:
def google_apps_spf_route (self, đường = r '(Pspf_google) @ (P. *)? ", sender_auth = [SPFAuth, GmailSPFAuth]):
& Nbsp; in "% s% s đã gửi thông điệp: n n% s"% (
& Nbsp; self.prefix,
& Nbsp; self.suffix,
& Nbsp; self.message
& Nbsp;)
Chạy một máy chủ
Máy chủ là một khái niệm trừu tượng mỏng trên đầu của Secure-smtpd (https://github.com/bcoe/secure-smtpd) do đó:
- SSL được hỗ trợ.
- Xác thực SMTP cơ bản được hỗ trợ.
Tạo một thể hiện của máy chủ bằng cách sử dụng các tùy chọn tương tự quy định tại các dự án an toàn-smtpd.
từ smtproutes nhập máy chủ
server = Server (("0.0.0.0", 25), None)
Một khi máy chủ được tạo ra, bạn có thể đăng ký các tuyến với nó và bắt đầu nó chạy:
từ example_route nhập ExampleRoute
server.add_route (ExampleRoute)
Server.start ()
. Các máy chủ sẽ được lắng nghe trên cổng 25 cho thông điệp SMTP inbound
Yêu cầu :
- Python
Bình luận không