Nút AWS SES
Gửi email từ một ứng dụng Web là phổ biến để thông báo cho người dùng về các sự kiện liên quan đến tương tác của họ với hệ thống, chẳng hạn như xác nhận tài khoản, đặt lại mật khẩu, xác nhận đơn hàng, v.v. Show
Email được gửi qua giao thức SMTP, giao thức này yêu cầu một bên là máy chủ và một bên là máy khách gửi yêu cầu đến máy chủ. Máy chủ SMTP được xử lý bởi các công ty như Yahoo, Google, AWS, v.v. Trong bài đăng này, chúng tôi sẽ sử dụng Amazon SES (Dịch vụ email đơn giản) để gửi email từ một Nút. ứng dụng js. Theo trường hợp sử dụng, chúng tôi sẽ tạo tài khoản thường yêu cầu xác nhận qua email điều kiện tiên quyếtBạn phải cài đặt những công cụ này trên máy tính của mình để làm theo hướng dẫn này
Thiết lập dự ánTôi đã tạo một bản soạn sẵn để nhanh chóng bắt đầu một Nút. js với Express Framework; . Hãy sao chép nó và làm cho nó hoạt động cục bộ
Điều hướng đến URL http. //máy chủ cục bộ. 4500 để xác minh nó hoạt động như mong đợi Dự án này sử dụng gói dotenv để tải các biến môi trường từ tệp có tên Xây dựng mẫu emailNội dung email là phần chứa nội dung. Nội dung có thể ở dạng văn bản thuần túy hoặc HTML. Với HTML, bạn có thể xây dựng nội dung email đẹp mắt, vậy phần đầu tiên là tạo mẫu email đó Chúng tôi sẽ sử dụng một công cụ mẫu để tận dụng khả năng đưa các biến vào mẫu của chúng tôi. Công cụ mẫu phổ biến nhất trong Node. js là Tay lái. Hãy cài đặt nó
Tạo một thư mục có tên là 0, sau đó tạo một tệp 1 và thêm mã bên dưới
Mã HTML này cung cấp bản xem trước bên dưới Mẫu email để xây dựng bằng HTMLTừ khóa 2 và 3 sẽ được thay thế bằng tên người dùng và email tương ứng. Tay lái cung cấp một phương thức 4 để tạo nội dung HTML từ mẫu nàyĐịnh cấu hình AWS SESĐể gửi email bằng Amazon SES, trước tiên chúng ta phải thiết lập SES từ bảng điều khiển AWS. Chính xác, chúng tôi cần xác thực địa chỉ email của người gửi Trước khi tiếp tục, hãy xem giá của Amazon SES Giá dịch vụ email đơn giản của Amazon. Dịch vụ email đám mây. Dịch vụ web của Amazon Amazon Simple Email Service (SES) là dịch vụ trả tiền khi sử dụng dựa trên khối lượng email được gửi và nhận. Không có đăng ký, không có đàm phán hợp đồng và không có phí tối thiểu Dịch vụ web Amazon, IncTruy cập Bảng điều khiển AWS, xác thực, sau đó tìm dịch vụ SES. Bạn sẽ có trang bên dưới; Trang chủ Amazon SESCó hai loại danh tính. Tên miền và địa chỉ Email; . Chúng tôi sẽ lấy loại nhận dạng thứ hai để đơn giản Tạo danh tính mới trên Amazon SESBạn sẽ được chuyển hướng đến một trang hiển thị biểu ngữ như trong hình bên dưới Biểu ngữ cho biết kiểm tra hộp thư đến email để xác thực emailChuyển đến hộp thư đến địa chỉ email của bạn và nhấp vào liên kết được cung cấp. Bạn sẽ được chuyển hướng đến một trang xác thực thành công Danh tính đã được xác thực thành côngBây giờ chúng tôi có thể gửi email từ danh tính này Định cấu hình cài đặt SMTPDanh tính đã được xác minh, nhưng để gửi email, chúng tôi cần thông tin đăng nhập SMTP bao gồm bốn phần thông tin
Hãy lấy hai mẩu thông tin còn lại Tạo thông tin đăng nhập SMTPBạn sẽ được chuyển hướng đến trang bên dưới; Tạo người dùng IAM để liên kết với thông tin đăng nhập SMTPTrên trang tiếp theo, bạn sẽ thấy thông tin xác thực được tạo; Tệp được tải xuống là tệp CSV chứa tên Người dùng IAM, tên người dùng SMTP và mật khẩu SMTP Tên người dùng và mật khẩu SMTP đã được tạo thành côngChúng ta có thể chuyển sang bước tiếp theo 💡 Theo mặc định, AWS SES ở chế độ hộp cát. Điều này giúp bạn kiểm tra ứng dụng của mình mà không gặp rủi ro ảnh hưởng đến việc bị tính phí cho các email bạn gửi. Bạn có hạn ngạch 200 email mỗi ngày Cài đặt ứng dụng khách SMTPĐể gửi email từ một Node. js, chúng tôi cần một máy khách STMP và sẽ sử dụng gói nút có tên là nodemailer Chạy lệnh bên dưới để cài đặt gói
Tạo một điểm cuối để kích hoạt việc gửiChúng tôi sẽ tạo một tuyến đường 7 trong phương thức POST, nội dung yêu cầu phải có địa chỉ email và tên của người dùng. Chúng tôi sẽ không xử lý đăng ký trong cơ sở dữ liệuCập nhật tệp 8 để thêm mã bên dưới
Chúng ta có thể chia đoạn mã trên thành bốn phần
Cập nhật tệp biến môi trườngTheo đoạn mã trên, chúng ta phải thêm năm biến vào tệp
Thuộc tính 0 phải là email chúng tôi đã xác minh trước đó trong Amazon SESKiểm tra ứng dụngKhởi động ứng dụng, mở Postman hoặc bất kỳ ứng dụng khách HTTP nào bạn có và gửi yêu cầu POST đến đường dẫn 7Gửi yêu cầu tới route /register để kích hoạt việc gửi emailKiểm tra hộp thư đến email của bạn hoặc email rác; Máy khách SMTP cung cấp một số chi tiết về kết quả gửi email. Bạn có thể xem email đã gửi đã được chấp nhận hay bị từ chối, kích thước email, ID thư, v.v. Nội dung kết quả gửi email từ SMTP clientLỗi chế độ hộp cátỞ chế độ Hộp cát, bạn chỉ có thể gửi email đến địa chỉ email đã xác minh. Trong trường hợp của chúng tôi, chúng tôi chỉ có thể gửi email đến địa chỉ mà chúng tôi đã xác minh trước đó hoặc chúng tôi có thể thêm địa chỉ mới Kích hoạt AWS SES để sản xuấtBạn đã thử nghiệm ứng dụng của mình ở chế độ Hộp cát và sẵn sàng sử dụng nó trong sản xuất. Bạn cần chuyển sang chế độ sản xuất, gửi yêu cầu và chờ phê duyệt Truy cập trang SES và nhấp vào menu thanh bên trái có tên 2; Yêu cầu chuyển từ chế độ Hộp cát sang chế độ sản xuấtCung cấp thông tin về doanh nghiệp sẽ sử dụng danh tính SES và gửi Thưởng. Xây dựng ứng dụng khách SMTP chung để gửi emailMã để gửi email có hơn 60 dòng mã và nếu bạn cần gửi email ở nhiều nơi trong cơ sở mã của mình, hãy sao chép mã này để chỉ thay đổi một số chi tiết (dữ liệu mẫu, đường dẫn mẫu, chủ đề và Chúng ta có thể trừu tượng hóa logic liên quan đến việc tạo HTML, thiết lập truyền tải SMTP và gửi email Tạo một tệp 3 và thêm mã bên dưới
Bây giờ đoạn mã trước để gửi email trong tệp 8 trông như thế này
Bạn có thể sử dụng lại hàm 5 trong dự án của mìnhGói (lạiAmazon SES là một dịch vụ AWS tuyệt vời mà bạn có thể sử dụng để gửi email giao dịch hoặc tiếp thị từ ứng dụng của mình. Chúng tôi đã xem cách gửi email bằng giao thức SMTP nhưng lưu ý rằng chúng tôi cũng có thể sử dụng AWS SDK để gửi email Bạn có thể tiến xa hơn bằng cách kết nối danh tính SES của mình với các chủ đề SNS để thực hiện một số hành động khi gửi email thành công, bị trả lại, v.v. Xem tài liệu chính thức để tìm hiểu thêm về khả năng của AWS Bạn có thể tìm mã nguồn trên kho lưu trữ GitHub Theo dõi tôi trên Twitter hoặc đăng ký nhận bản tin của tôi để tránh bỏ lỡ các bài đăng sắp tới cũng như các mẹo và thủ thuật mà tôi thỉnh thoảng chia sẻ Làm cách nào để gửi email bằng ses trong nodejs?Tạo người dùng AWS IAM có quyền SES. . Xác minh miền của bạn với AWS Đăng ký tên miền MAIL FROM Xác minh email người gửi Xóa tài khoản AWS của bạn khỏi môi trường hộp cát SES Tạo người dùng AWS IAM có quyền SES AWS SES có bị phản đối không?Để tăng cường bảo mật cho khách hàng Amazon SES, bắt đầu từ ngày 1 tháng 10 năm 2020, hỗ trợ Chữ ký phiên bản 3 sẽ bị tắt (không dùng nữa) trong Amazon SES, and only Signature Version 4 will be supported going forward.
AWS có hỗ trợ Nodejs không?Nhà phát triển tạo ứng dụng serverless trong Lambda bằng Node. js 18 có thể tận dụng các tính năng mới, chẳng hạn như bản nâng cấp AWS SDK dành cho JavaScript đi kèm lên phiên bản v3 và hỗ trợ được cải thiện để triển khai Mô-đun ES bằng cách sử dụng các lớp Lambda. Bản phát hành này cũng cung cấp quyền truy cập vào Node.
AWS SES có sẵn ở Singapore không?Amazon Simple Email Service (Amazon SES) hiện có sẵn ở 4 Khu vực AWS bổ sung bao gồm Miền Đông Hoa Kỳ (Ohio), Châu Á Thái Bình Dương (Singapore), Châu Á Thái Bình Dương (Tokyo) và Châu Á Thái Bình Dương (Seoul) |