Cách gửi thư trong khi sử dụng gói email

Khi bạn xây dựng ứng dụng, bạn sẽ cần gửi email cho các mục đích khác nhau, từ thông báo đến xác thực, v.v. Đi cung cấp smtpthư gói trong thư viện tiêu chuẩn của nó để gửi email. Ngoài ra còn có nhiều gói email của bên thứ ba trong hệ sinh thái Go.


Các gói thư tích hợp khiến việc gửi email trở thành một nhiệm vụ phức tạp. Nếu bạn không phải là nhà phát triển ứng dụng phía máy chủ, bạn có thể thấy smtpthư gói khó sử dụng và cấu hình.

Một giải pháp thay thế phổ biến là của Jordan Wright e-mail gói trừu tượng hóa sự phức tạp của việc gửi thư. Nó cũng thêm các tính năng mà bạn sẽ không tìm thấy trong smtpthư gói.


Bắt đầu với gói email

gói email xem trước github

Các e-mail gói là một thư viện nhẹ, mạnh mẽ và linh hoạt, phổ biến vì tính đơn giản của nó. Chỉ với một vài dòng mã, bạn có thể tạo và gửi email có tệp đính kèm, nội dung HTML, v.v. Gói này cũng hỗ trợ các tính năng nâng cao như kết nối SMTP an toàn và nhiều người nhận, làm cho nó trở thành một công cụ linh hoạt cho nhu cầu email của bạn.

Gói email cũng hỗ trợ các trường CC và BCC, địa chỉ email ở nhiều định dạng, xác nhận đã đọc và tiêu đề tùy chỉnh.

Vì gói không được tích hợp sẵn trong thư viện tiêu chuẩn của Go, nên bạn sẽ cần cài đặt gói đó với đi lấy chỉ huy. Gói email hỗ trợ phiên bản Go 1.15 trở lên.

Chạy lệnh này để cài đặt gói vào phần phụ thuộc của dự án sau khi khởi tạo một dự án mới.

 go get github.com/jordan-wright/email

Khi bạn đã cài đặt gói email, bạn có thể nhập gói đó bằng cách chỉ định vị trí liên quan đến đường dẫn cài đặt của mình:

 import (
    "fmt"
    "github.com/jordan-wright/email"
    "net/smtp"
)

Bạn sẽ sử dụng fmt gói để in đầu ra ra bàn điều khiển và smtp gói cho mục đích xác thực.

Gửi thư với gói email

Bạn sẽ cần khai báo các biến để lưu trữ dữ liệu cho thư của mình. Khai báo các biến cho email và mật khẩu của bạn.

 mail := "your email"
password := "your app password"

Bạn có thể mã hóa cứng mật khẩu hoặc sử dụng tệp biến môi trường để tăng cường bảo mật.

Các thưmật khẩu mở khóa các biến sẽ giữ email và mật khẩu của bạn tương ứng.

Bạn sẽ cần khai báo các biến cho địa chỉ máy chủ và số cổng cho thư. Đây là địa chỉ máy chủ và số cổng cho Yahoo mail:

 hostAddress := "smtp.mail.yahoo.com"
hostPort := "465"

Bạn cũng sẽ cần tạo một phiên bản email mới để gửi email bằng e-mail bưu kiện. Bạn có thể sử dụng phương thức NewEmail của e-mail gói để khởi tạo phiên bản email cho thư của bạn:

 newEmail := email.NewEmail()

Các Email mới phương thức trả về một thể hiện cấu trúc mà bạn có thể sửa đổi cho các phần tử trong email của mình.

Bạn có thể dùng TừĐến các trường của cấu trúc để thêm email của người gửi và người nhận vào phiên bản email của bạn.

 newEmail.From = mail
newEmail.To = []string{"list of recipients"}

Các Đến trường là một lát chuỗi có dung lượng không giới hạn mà bạn có thể sử dụng để khai báo tất cả các địa chỉ người nhận của mình.

Bạn có thể thêm CCBCC các trường email của bạn bằng cách sử dụng Bcccc các trường của thể hiện cấu trúc:

 newEmail.Bcc = []string{"list of bcc"}
newEmail.Cc = []string{"list of cc"}

Đối với nội dung của thư, bạn có thể thêm chủ đề và nội dung văn bản của email bằng cách sử dụng Môn họcChữ các trường của cấu trúc. Chủ đề là một trường chuỗi và nội dung văn bản là một lát byte.

 newEmail.Subject = "The Email subject"
newEmail.Text = []byte("Body of your email")

Sau khi bạn đã thêm tất cả các trường bắt buộc, bạn có thể gửi email bằng cách sử dụng Gửi phương pháp ví dụ email của bạn. Các Gửi phương thức lấy địa chỉ máy chủ, số cổng máy chủ và một phiên bản của smtp gói của PlainAuth.

 err := newEmail.Send(
   fmt.Sprintf("%s:%s", hostAddress, hostPort),
   smtp.PlainAuth("", mail, password, hostAddress)
)
if err != nil {
    fmt.Println("There was an error sending the mail")
} else {
    fmt.Println("The mail was sent successfully")
}


Các Gửi phương thức trả về một lỗi mà bạn có thể xử lý hoặc không nếu không có lỗi.

kết quả gửi mail

Bạn đã gửi thư thành công với e-mail gói có ít dòng hơn bạn phải viết để gửi thư với smtp bưu kiện.

Bạn có thể gửi thư bằng gói SMTP tích hợp

Go là một ngôn ngữ được lập kế hoạch tốt vì thư viện tiêu chuẩn của nó có hầu hết các chức năng mà bạn sẽ cần để xây dựng các ứng dụng web hoàn chỉnh mà không cần phụ thuộc bên ngoài hoặc các gói của bên thứ ba.

Các smtp gói có ích để gửi email qua các dịch vụ khác nhau có chức năng tương tự như e-mail bưu kiện.

Previous Post
Next Post

post written by: