Gửi email bằng Perl

Gui Email Bang Perl



Có nhiều mô-đun trong Perl để gửi email từ hệ điều hành Ubuntu. Mô-đun “Net::SMTP::SSL” là một trong số đó. Bất kỳ máy chủ SMTP hợp lệ nào có tên người dùng và mật khẩu chính xác đều được yêu cầu gửi email bằng mô-đun Perl này. Máy chủ SMTP của tài khoản Gmail cùng tên người dùng và mật khẩu hợp lệ được sử dụng trong hướng dẫn này để gửi email bằng tập lệnh Perl từ hệ điều hành Ubuntu. Tuy nhiên, tài khoản Gmail yêu cầu một số cấu hình để gửi email bằng máy chủ Gmail SMTP. Cần có tùy chọn “ứng dụng kém an toàn hơn” của bất kỳ tài khoản Gmail nào để cho phép gửi email bằng máy chủ Gmail SMTP. Nhưng tùy chọn tài khoản Gmail này đã bị xóa từ năm 2022. Bây giờ, bạn phải đặt “Mật khẩu ứng dụng” của tài khoản Gmail để gửi email. Bạn phải đặt mật khẩu này cho tài khoản Gmail sẽ được sử dụng để gửi email trước khi thực hành các ví dụ của hướng dẫn này.

Các ví dụ khác nhau về việc gửi email

Các phương pháp gửi email bằng máy chủ Gmail SMTP và tài khoản Gmail được trình bày trong phần hướng dẫn này.

Ví dụ 1: Gửi một email văn bản đơn giản

Tạo một tệp Perl với tập lệnh sau để gửi một email văn bản đơn giản bằng máy chủ Gmail SMTP. Bạn phải đặt địa chỉ email hợp lệ và mật khẩu được đặt cho mật khẩu ứng dụng thành các biến $username và $password. Tên người dùng và mật khẩu giả được gán trong tập lệnh. Email sẽ không được gửi nếu mật khẩu ứng dụng không được cấu hình đúng cách. Tiếp theo, đặt địa chỉ email người nhận và người gửi hợp lệ thành các biến $to và $from để kiểm tra xem email có được gửi đúng cách hay không. Phần còn lại của kịch bản vẫn không thay đổi. Một tin nhắn văn bản đơn giản sẽ được gửi đến địa chỉ email của người nhận nếu máy chủ SMTP được kết nối và thông tin của người dùng được xác thực thành công.







#!/usr/bin/perl

#Nhập các mô-đun cần thiết
Sử dụng nghiêm ngặt ;
sử dụng Net::SMTP::SSL ;

#Khai báo chương trình con để gửi email bằng máy chủ Gmail
gửi phụEmail
{

#Tên người dùng và mật khẩu để xác thực
tên người dùng $ của tôi = 'tên người dùng@gmail.com' ;
mật khẩu $ của tôi = 'mật khẩu ứng dụng' ;

#Khởi tạo các biến để gửi email
$to của tôi = 'người nhận@gmail.com' ;
$ từ của tôi = 'Meher Nigar ' ;
chủ đề $ của tôi = 'Đó là một email thử nghiệm' ;
tin nhắn $ của tôi = 'Xin chào, đang gửi email bằng Perl.' ;

#Khai báo biến smtp
Máy chủ $smtp của tôi ;

#Kết nối với máy chủ Gmail smtp
nếu như ( không $smtpMáy chủ = Mạng::SMTP::SSL- > mới ( 'smtp.gmail.com' , Hải cảng => 465 , Gỡ lỗi => 1 ) )
{
các 'Không thể kết nối với máy chủ SMTP. \N ' ;
}

#Kiểm tra tên người dùng và mật khẩu có hợp lệ không
$smtpServer- > xác thực ( tên người dùng $ , $ mật khẩu ) || các 'Lỗi xác thực. \N ' ;

$smtpServer- > thư ( $ từ. ' \N ' ) ;
$smtpServer- > ĐẾN ( $ tới. ' \N ' ) ;
$smtpServer- > dữ liệu ( ) ;
$smtpServer- > gửi dữ liệu ( 'Từ: ' . $ từ . ' \N ' ) ;
$smtpServer- > gửi dữ liệu ( 'ĐẾN: ' . $ tới . ' \N ' ) ;
$smtpServer- > gửi dữ liệu ( 'Chủ thể: ' . chủ đề $ . ' \N ' ) ;
$smtpServer- > gửi dữ liệu ( ' \N ' ) ;

}

#Gọi chương trình con

&gửi email ( ) ;

Đầu ra:



Thông tin tương tự sau đây xuất hiện ở đầu đầu ra sau khi thực thi tập lệnh nếu email được gửi thành công:







Khi bạn mở địa chỉ email của người nhận, bạn sẽ nhận được email sau trong hộp thư đến:

Ví dụ 2: Gửi email có định dạng HTML

Tạo một tệp Perl có đoạn mã sau để gửi email có định dạng HTML bằng máy chủ Gmail SMTP. Bạn phải đặt địa chỉ email và mật khẩu hợp lệ như trong ví dụ trước. Tiếp theo, đặt địa chỉ email người nhận và người gửi hợp lệ. Mã HTML được thêm vào dưới dạng thông báo email trong tập lệnh. Loại nội dung của email được đặt thành text/html để gửi email có định dạng HTML. Phần còn lại của tập lệnh giống như ví dụ trước. Một email có định dạng HTML sẽ được gửi đến địa chỉ email của người nhận nếu máy chủ SMTP được kết nối và thông tin của người dùng được xác thực thành công.

#!/usr/bin/perl

#Nhập các mô-đun cần thiết
Sử dụng nghiêm ngặt ;
sử dụng Net::SMTP::SSL ;

#Khai báo chương trình con để gửi email bằng máy chủ Gmail
gửi phụEmail
{
#Tên người dùng và mật khẩu để xác thực
tên người dùng $ của tôi = 'tên người dùng@gmail.com' ;
mật khẩu $ của tôi = 'mật khẩu ứng dụng' ;

#Khởi tạo các biến để gửi email
$to của tôi = 'người nhận@gmail.com' ;
$ từ của tôi = 'Meher Nigar ' ;
chủ đề $ của tôi = 'Đăng ky đa hoan tât' ;
tin nhắn $ của tôi = '

Chào mừng bạn đến với trang web của chúng tôi

'
;

#Khai báo biến smtp
Máy chủ $smtp của tôi ;

#Kết nối với máy chủ Gmail smtp
nếu như ( không $smtpMáy chủ = Mạng::SMTP::SSL- > mới ( 'smtp.gmail.com' , Hải cảng => 465 , Gỡ lỗi => 1 ) )
{
các 'Không thể kết nối với máy chủ SMTP. \N ' ;
}

#Kiểm tra tên người dùng và mật khẩu có hợp lệ không
$smtpServer- > xác thực ( tên người dùng $ , $ mật khẩu ) || các 'Lỗi xác thực. \N ' ;

$smtpServer- > thư ( $ từ. ' \N ' ) ;
$smtpServer- > ĐẾN ( $ tới. ' \N ' ) ;
$smtpServer- > dữ liệu ( ) ;
$smtpServer- > gửi dữ liệu ( 'Từ: ' . $ từ . ' \N ' ) ;
$smtpServer- > gửi dữ liệu ( 'ĐẾN: ' . $ tới . ' \N ' ) ;
$smtpServer- > gửi dữ liệu ( 'Chủ thể: ' . chủ đề $ . ' \N ' ) ;

#Đặt loại nội dung email thành HTML để gửi email có định dạng html
$smtpServer- > gửi dữ liệu ( 'Loại nội dung: văn bản/html; bộ ký tự=utf-8 \N \N ' ) ;
$smtpServer- > gửi dữ liệu ( tin nhắn $. ' \N ' ) ;
$smtpServer- > kết thúc dữ liệu ( ) ;
$smtpServer- > từ bỏ ;

}

#Gọi chương trình con

&gửi email ( ) ;

Đầu ra:



Thông tin tương tự sau đây xuất hiện ở đầu đầu ra sau khi thực thi tập lệnh nếu email được gửi thành công:







Khi bạn mở địa chỉ email của người nhận, bạn sẽ nhận được email sau trong hộp thư đến:





Phần kết luận

Phương pháp gửi email bằng Perl thông qua máy chủ Gmail SMTP không còn dễ dàng như trước sau khi vô hiệu hóa “ứng dụng kém an toàn” của tài khoản Gmail. Nhưng bạn có thể gửi email bằng cách đặt mật khẩu ứng dụng ngay bây giờ.