Nodemailer [https://nodemailer.com/about/] là một mô-đun Node.js cho phép bạn gửi email từ máy chủ của mình một cách dễ dàng. Cho dù bạn muốn giao tiếp với người dùng của mình hay chỉ thông báo cho chính mình khi có sự cố xảy ra, một trong những tùy chọn để làm như vậy là qua thư. Có rất nhiều bài viết trên mạng

Bạn đang xem: ví dụ js nút nút

Nodemailer là một Node.js mô-đun cho phép bạn gửi email từ máy chủ của mình một cách dễ dàng. Cho dù bạn muốn giao tiếp với người dùng của mình hay chỉ thông báo cho chính mình khi có sự cố, một trong những tùy chọn để làm điều đó là qua thư.

Có rất nhiều bài viết giải thích cách sử dụng Nodemailer ở dạng barebone , nhưng bài viết này không phải là một trong số đó. Sau đây, tôi sẽ chỉ ra phương pháp phổ biến nhất để gửi email từ chương trình phụ trợ Node.js của bạn bằng Nodemailer và Gmail.

Cách bắt đầu với Nodemailer

Đầu tiên, chúng ta cần thiết lập bảng soạn sẵn Node.js bằng Express. Để đảm bảo bạn đã cài đặt Node và npm, bạn có thể chạy các lệnh sau:

  node -v
npm -v  

Nếu cả hai lệnh này đều hiển thị một phiên bản, bạn có thể sử dụng. Nếu không, hãy cài đặt những gì còn thiếu.

Tạo một thư mục cho dự án của bạn. Chúng tôi sẽ sử dụng gật đầu cung cấp dịch vụ .

  mkdir gật đầu với dự án  

Vào bên trong thư mục mới được tạo và run

  npm init  

Thao tác này sẽ khởi tạo dự án của chúng tôi bằng tệp pacakge.json .

Tiếp theo, chúng ta sẽ cần cài đặt Express bằng cách sử dụng:

  npm install express  

Tùy thuộc vào tệp bạn đã trỏ đến làm mục nhập của mình (mặc định là index.js), mở nó và dán đoạn mã sau:

  const express = request ('express')
const app = express ()
cổng const = 3000


app.listen (port, () = & gt; {
  console.log (`subsemailerProject đang nghe tại http: // localhost: $ {port}`)
})  

index.js

Trên đây là những gì cần thiết để khởi động một máy chủ đơn giản bằng Express. Bạn có thể thấy rằng nó hoạt động bình thường bằng cách chạy:

  node index.js  

Cách Cài đặt Nodemailer

Cài đặt Nodemailer bằng lệnh sau:

  npm cài đặt Nodemailer  

API của Nodemailer khá đơn giản và yêu cầu chúng tôi thực hiện những việc sau:

  1. Tạo đối tượng Người vận chuyển
  2. Tạo MailOptions Đối tượng
  3. Sử dụng phương thức Transporter.sendMail

Để tạo đối tượng vận chuyển, chúng tôi thực hiện như sau:

  let Transporter = gật gù.createTransport ({
      dịch vụ: 'gmail',
      auth: {
        nhập: 'OAuth2',
        người dùng: process.env.MAIL_USERNAME,
        vượt qua: process.env.MAIL_PASSWORD,
        clientId: process.env.OAUTH_CLIENTID,
        clientSecret: process.env.OAUTH_CLIENT_SECRET,
        refreshToken: process.env.OAUTH_REFRESH_TOKEN
      }
    });  < .  

Như chúng tôi đã nêu ở đầu bài viết này, chúng tôi sẽ sử dụng Gmail cho nhu cầu gửi thư của mình. Như bạn có thể đoán, Gmail có mức độ bảo mật cao khi nói đến thư được gửi bằng / đến tài khoản của người dùng.

Chúng tôi có thể vượt qua một số cách để vượt qua trở ngại này (một số cách tốt hơn những cách khác) và chúng tôi sẽ chọn cách yêu cầu chúng tôi thiết lập dự án trong Google Cloud Platform >. Chúng tôi cần làm điều đó để có thông tin đăng nhập cho bảo mật OAuth được bật bởi Gmail.

Nếu bạn muốn đọc thêm về sự phức tạp của việc sử dụng Gmail với gật đầu, hãy truy cập tại đây .

Các bước tiếp theo sẽ yêu cầu một số cấu hình thay vì viết mã, vì vậy hãy chuẩn bị tinh thần.

image-297 Ảnh của Daniel McCullough / Unsplash

Google Cloud Platform Configurations

Nếu bạn không có Google Cloud Tài khoản nền tảng , hãy đảm bảo thiết lập một tài khoản làm điều kiện tiên quyết. Khi bạn đã thiết lập xong, hãy tạo một dự án mới bằng cách nhấp vào menu thả xuống ở góc trên bên trái.

1_a4fnFLNMoTtLJuqsKilVnA

Chọn tùy chọn Dự án mới:

 1_HNwUG3wPdbrwc3JB5D7_tg

Trong cửa sổ tiếp theo, chúng ta sẽ phải đặt tên cho dự án của mình. Chọn bất kỳ thứ gì bạn thích, nhưng chúng tôi sẽ tiếp tục loại bỏ tên NodemailerProject . Đối với thuộc tính vị trí, bạn có thể để nó là Không có tổ chức.

1_TRlA6RBLCCCSMQ5R4di27A

Có thể mất vài giây để thiết lập dự án, nhưng sau đó bạn sẽ có thể thấy màn hình này:

1_FT9MhBZyU4cZd4Qg6zeFag

Mở menu điều hướng bằng cách nhấp vào ba đường đứt nét ở góc trên cùng bên trái và chọn API và dịch vụ:

1_qPaPpPadHQLdKCQbhjND7Q

Trong để có thể sử dụng Nodemailer và Gmail, chúng tôi sẽ phải sử dụng OAuth2. Nếu bạn không quen với OAuth, thì đó là một giao thức để xác thực. Tôi sẽ không đi sâu vào chi tiết cụ thể ở đây vì nó không cần thiết, nhưng nếu bạn muốn hiểu thêm về nó, hãy truy cập đây .

Trước tiên, chúng tôi sẽ phải định cấu hình Màn hình đồng ý OAuth của chúng tôi:

1_W2oeT1KmJXpwSQlIMIVo5w

Nếu bạn không phải là thành viên G-Suite, tùy chọn duy nhất có sẵn sẽ là Bên ngoài cho Loại người dùng.

 1_l_GrPVtXODPS0GXKLMdWYA

Sau nhấp vào tạo, màn hình tiếp theo yêu cầu chúng tôi điền thông tin của ứng dụng (máy chủ của chúng tôi):

1_reZ04hUX4jh1IzLGh7vCFA

Điền email của bạn vào trường Email hỗ trợ người dùng và cả trong th e Trường thông tin liên hệ của nhà phát triển. Nhấp vào Lưu và Tiếp tục sẽ đưa chúng ta đến giai đoạn Phạm vi của cấu hình này. Bỏ qua giai đoạn này vì nó không liên quan đến chúng tôi và chuyển sang giai đoạn Người dùng thử nghiệm.

1_Jms50wZ5mVmUyOaiVF7b4w

Tại đây, hãy thêm bạn làm người dùng và nhấp vào Lưu và tiếp tục.

Cách định cấu hình cài đặt OAuth của bạn

Trong giai đoạn này, chúng tôi sẽ tạo thông tin đăng nhập OAuth để sử dụng với Nodemailer. Đi tới tab Thông tin xác thực phía trên Màn hình chấp thuận OAuth. Nhấp vào dấu cộng (➕) có văn bản Tạo thông tin đăng nhập và chọn ID ứng dụng khách OAuth.

1_h0nME2ccR7HPjKmz_DMZRw

Trong menu thả xuống Loại ứng dụng, chọn Ứng dụng web :

1_72Em-VS-fdM2WCwOA6zcfg

Trong phần URI chuyển hướng được ủy quyền , hãy đảm bảo thêm Sân chơi OAuth2 ( https://developers.google.com/oauthplayground ) vì chúng tôi sẽ sử dụng nó để lấy một trong các khóa đã được đề cập ở đầu bài viết này.

 1_ywIcOlqA5DHdsPaSNnjJ9Q

Sau khi cl icking tạo, bạn sẽ được hiển thị với id khách hàng và bí mật khách hàng của mình. Hãy giữ những thứ này cho riêng mình và không bao giờ để lộ chúng dưới bất kỳ hình thức, hình dạng nào .

image-298 Ảnh của Power Lai / Hủy mã thông báo

Lấy mã làm mới OAuth của bạn

Để nhận mã làm mới, chúng tôi sẽ sử dụng mã này trong đối tượng vận chuyển trong Nodemailer, chúng ta cần đến Sân chơi OAuth2. Chúng tôi đã phê duyệt URI này cho mục đích cụ thể này trong giai đoạn trước đó.

1. Nhấp vào biểu tượng bánh răng ở bên phải (là Cấu hình OAuth2) và chọn hộp kiểm để sử dụng Thông tin đăng nhập OAuth2 của riêng bạn:

1_Kbg3RnTBNkDd_RQ0zn59mQ

2. Nhìn sang phía bên trái của trang web và bạn sẽ thấy danh sách các dịch vụ. Cuộn xuống cho đến khi bạn thấy API Gmail v1.

1_BppvkU1r4JzZ6j6FvC2qNw

3. Nhấp vào Ủy quyền API

Bạn sẽ thấy màn hình để đăng nhập vào bất kỳ tài khoản Gmail nào của mình. Chọn một người bạn đã liệt kê là Người dùng thử nghiệm.

4. Màn hình tiếp theo sẽ cho bạn biết rằng Google vẫn chưa xác minh ứng dụng này, nhưng điều này không sao vì chúng tôi chưa gửi nó để xác minh. Nhấp vào tiếp tục.

1_rL0tNdaZqOyIg6aCp4IR3g

5. Trong màn hình tiếp theo, bạn sẽ được yêu cầu cấp quyền cho dự án của mình để tương tác với tài khoản gmail của bạn. Làm như vậy.

1_y0TUXbtC_oUaB6KoGlURbQ

6. Sau khi hoàn tất, bạn sẽ được chuyển hướng trở lại Sân chơi OAuth và bạn có thể thấy rằng có mã ủy quyền trong menu bên trái. Nhấp vào nút màu xanh lam có nhãn Mã ủy quyền trao đổi lấy mã thông báo .

Các trường cho mã thông báo làm mới và mã thông báo truy cập bây giờ sẽ được điền.

Quay lại Máy chủ

Sau khi thực hiện tất cả các cấu hình đó, chúng tôi có thể quay lại ứng dụng của mình và nhập tất cả dữ liệu đó vào quá trình tạo trình vận chuyển. Để giữ tất cả thông tin đăng nhập của bạn ở chế độ riêng tư, bạn có thể sử dụng gói dotenv . Cũng đừng quên thêm tệp .env bạn sẽ tạo vào .gitignore.

Vì vậy, bây giờ chúng tôi có cái này:

  let Transporter = gật gù.createTransport ({
      dịch vụ: 'gmail',
      auth: {
        nhập: 'OAuth2',
        người dùng: process.env.MAIL_USERNAME,
        vượt qua: process.env.MAIL_PASSWORD,
        clientId: process.env.OAUTH_CLIENTID,
        clientSecret: process.env.OAUTH_CLIENT_SECRET,
        refreshToken: process.env.OAUTH_REFRESH_TOKEN
      }
    });  

Tiếp theo, chúng ta sẽ tạo đối tượng mailOptions, đối tượng này chứa thông tin chi tiết về nơi gửi email và với dữ liệu nào.

  let mailOptions = {
      từ: tomerpacific@gmail.com,
      đến: tomerpacific@gmail.com,
      chủ đề: 'Dự án Nodemailer',
      text: 'Xin chào từ dự án gật đầu của bạn'
    };  

Đối tượng này có thể có nhiều trường hơn và thậm chí có nhiều người nhận, nhưng chúng tôi sẽ không đi sâu vào vấn đề đó ở đây.

Cuối cùng, chúng tôi sẽ sử dụng phương thức sendMail :

  Transporter.sendMail (mailOptions, function (err, data) {
      nếu (sai) {
        console.log ("Lỗi" + err);
      } khác {
        console.log ("Đã gửi email thành công");
      }
    });  

Chạy ứng dụng của bạn và bạn sẽ thấy hộp thư đến của mình được điền một email mới.

Bài viết này được lấy cảm hứng từ một dự án mà tôi đã tạo sử dụng Nodemailer. Nếu bạn muốn xem, hãy truy cập tại đây .


Xem thêm những thông tin liên quan đến chủ đề ví dụ về nút node js

Angular 2 + Node.js Setup

alt

  • Tác giả: JsWiz
  • Ngày đăng: 2017-03-13
  • Đánh giá: 4 ⭐ ( 4850 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Master Angular build 7 Apps - https://goo.gl/Km5P7N

    Repo is here: https://goo.gl/valig8

    In this video we look at two different options to developing an application using Angular and Node.js. The first option involves running one node server then compiling any changes made to our typescript files in a separate terminal.

    The second option we run 2 servers, a node server and a lite server that watches for any changes made to our typescript files then recompiles the code and restarts our server.

    In these examples I've also included socket.io to send events from the client to the server and vice versa.

    When only running a node server in OptionA, we need to use gulp to copy over our frontend files into a lib folder inside of our public folder.

Tại sao bạn nên học Node.js?

  • Tác giả: www.imic.edu.vn
  • Đánh giá: 5 ⭐ ( 6188 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Javascript đang dần trở nên phổ biến, đi kèm với nó là rất nhiều sự thay đổi, khiến cho bộ mặt của ngành phát triển web trở nên lung linh hơn. Javascript bây giờ đã xuất hiện trên cả phía server-side, cùng với sức mạnh của nó ở phía client-side vốn dĩ đã rất mạnh mẽ, tạo nên 1 xu hướng mới, trào lưu mới trong lập trình web. Nếu so với cách đây chỉ vài năm thôi, thật khó để tưởng tượng được rằng thế giới website vẫn còn bị quanh quẩn trong những môi trường sand-box như Flash hay Java Applets.

Tự học Node.js cơ bản để đi phỏng vấn (13 bài) – 3 – Nền tảng Node.js

  • Tác giả: hocweb.vn
  • Đánh giá: 3 ⭐ ( 4842 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Node.js là một trình chạy JavaScript được xây dựng trên công cụ JavaScript V8 của Chrome.

Node.js: Đối tượng process

  • Tác giả: v1study.com
  • Đánh giá: 5 ⭐ ( 5108 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Đối tượng process là một đối tượng toàn cục và có thể được truy cập từ bất kỳ đâu. Dưới đây sẽ trình bày một số phương thức có sẵn của đối tượng process.

Node.js - Thiết lập môi trường

  • Tác giả: isolution.pro
  • Đánh giá: 3 ⭐ ( 9505 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Dùng thử Tùy chọn trực tuyến Bạn thực sự không cần thiết lập môi trường của riêng mình để bắt đầu học Node.js. Lý do rất đơn giản, chúng tôi đã thiết lập môi trường Node.js trực tuyến, để bạn có thể thực hiện tất cả các ví dụ có sẵn trực tuyến và học qua thực hành. Hãy sửa...

[Tự học Javascript] Tìm hiểu các Thuộc tính Node(nút) trong DOM: loại, thẻ(tag) và nội dung

  • Tác giả: cafedev.vn
  • Đánh giá: 5 ⭐ ( 1064 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Trong chương này, cafedev sẽ xem thêm về chúng là gì và tìm hiểu các thuộc tính được sử dụng nhiều nhất của chúng.

NodeJS – Ví dụ về Express

  • Tác giả: phocode.com
  • Đánh giá: 5 ⭐ ( 9189 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  20 phông chữ HTML tốt nhất để sử dụng vào năm 2022 - mã hóa phông chữ trong html

By ads_php