Tập lệnh Bash để gửi email

Bash Script Send Email



Email là một phương tiện giao tiếp rất phổ biến trong thế giới ngày nay. Bất kỳ ai cũng có thể dễ dàng giao tiếp hoặc chia sẻ bất kỳ tài liệu nào với bạn bè, thành viên gia đình và đồng nghiệp bằng cách gửi email. Nói chung, mọi người sử dụng bất kỳ máy chủ email miễn phí nào như Gmail, Yahoo, Hotmail, v.v. để gửi email. Nhưng bạn có thể gửi email từ dòng lệnh một cách dễ dàng trong hệ điều hành Linux. Có nhiều cách để gửi email trong Linux. Một số cách phổ biến và dễ dàng để gửi email trong hệ điều hành Ubuntu từ thiết bị đầu cuối được trình bày trong hướng dẫn này.

Khởi tạo:

Nhiều lệnh Linux có sẵn để gửi email từ dòng lệnh hoặc bằng cách sử dụng tập lệnh bash. Nhưng mọi lệnh gửi email sẽ không hoạt động nếu không có máy chủ SMTP nào được thiết lập đúng cách trong hệ thống. Bạn có thể thiết lập máy chủ SMTP của riêng mình để gửi email từ dòng lệnh hoặc bạn có thể sử dụng bất kỳ máy chủ SMTP miễn phí nào của bất kỳ nhà cung cấp dịch vụ email nổi tiếng nào như Gmail hoặc Yahoo. Máy chủ SMTP của tài khoản Gmail được sử dụng trong hướng dẫn này. Để thực hiện tác vụ này, bạn phải chọn tài khoản Gmail và bật tùy chọn 'Cho phép ứng dụng kém an toàn hơn' để tài khoản đó gửi email. Bạn có thể truy cập hướng dẫn sau để bật tùy chọn này.







https://linuxhint.com/how-to-send-email-from-php/



Sau khi bật tùy chọn này, bạn phải mở tệp ‘/etc/ssmtp/ssmtp.conf’ với đặc quyền ‘root’ và thêm các dòng sau vào cuối tệp. Bạn phải đặt địa chỉ email của mình thành ‘AuthUser’ và mật khẩu email của bạn thành ‘AuthPass’ để hoàn tất thiết lập.



Sử dụngSTARTTLS= CÓ
FromLineOverride= CÓ
nguồn gốc= quản trị viên@example.com
mailhub= smtp.gmail.com:587
AuthUser= tên người dùng@gmail.com
AuthPass= mật khẩu

Ví dụ-1: Sử dụng lệnh Sendmail

Một trong những lệnh gửi email phổ biến của Linux là `sendmail`. Người dùng có thể dễ dàng gửi email từ dòng lệnh bằng cách sử dụng lệnh này. Nếu gói Sendmail chưa được cài đặt trong hệ thống, hãy chạy lệnh sau để cài đặt gói.





$sudođúng cáchTải vềssmtp

Giả sử, nội dung email được lưu trữ trong một tệp có tên là ‘email.txt’ với nội dung như sau. Tại đây, văn bản sau 'Chủ đề:' sẽ được gửi dưới dạng chủ đề email và phần còn lại sẽ được gửi dưới dạng nội dung email.

email.txt



Chủ đề: Gửi email bằng sendmail
Kiểm tra nội dung email

Chạy lệnh 'sendmail' với địa chỉ email người nhận như lệnh sau.

$gửi thưtên tài khoản@gmail.com<email.txt

Ví dụ-2: Sử dụng lệnh ‘mail’

Lệnh phổ biến nhất để gửi email trong Linux là lệnh `mail`. Lệnh này không được cài đặt trên Ubuntu theo mặc định. Chạy lệnh sau để cài đặt lệnh `mail`.

$sudođúng cáchTải vềmailutils

Lệnh sau sẽ hiển thị phiên bản của lệnh này nếu nó được cài đặt trong hệ thống.

$thư-V

Tùy chọn ‘-s’ được sử dụng trong lệnh `mail` để xác định chủ đề của email. Chạy lệnh 'mail' theo tùy chọn ‘-s’ với chủ đề email và địa chỉ email người nhận như lệnh sau. Nó sẽ hỏi địa chỉ Cc:. Nếu bạn không muốn sử dụng trường Cc: thì hãy giữ nó trống và nhấn enter. Nhập nội dung thư và nhấn Ctrl + D để gửi email.

$thư-NS 'chủ thể'tên tài khoản@gmail.com

Nếu bạn muốn thêm nội dung email trong lệnh thì hãy sử dụng ‘<<<’ operator like the following command.

$thư-NS 'chủ đề tin nhắn'tên tài khoản@gmail.com<<< 'kiểm tra nội dung thư'

Bạn cũng có thể thêm địa chỉ email của người gửi bằng lệnh `mail` bằng cách sử dụng tùy chọn‘ -a ’. Lệnh sau sẽ gửi email có chủ đề, 'chủ đề thư', tên người gửi và địa chỉ email, 'Quản trị viên<[email được bảo vệ]> ’Và địa chỉ email của người nhận,[email được bảo vệ]và nội dung thông báo, 'thông báo thử nghiệm'.

$ thư-NS 'chủ đề tin nhắn' -đếnTừ: Admin <quản trị viên@example.com >
tên tài khoản@gmail.com<<< 'thông báo thử nghiệm'

Bạn cũng có thể gửi nội dung email bằng cách sử dụng lệnh echo và pipe (|). Lệnh sau sử dụng lệnh pipe (|) để gửi nội dung thư.

$quăng đi 'thông báo thử nghiệm' |thư-NS 'chủ đề tin nhắn'tên tài khoản@example.com

Email có thể được gửi đến nhiều người nhận bằng cách sử dụng lệnh `mail` và thêm địa chỉ của người nhận bằng cách phân tách dấu phẩy. Lệnh sau sẽ được gửi một email đến hai người nhận.

$thư-NS 'Kiểm tra email'tên người dùng1@example.com, tên người dùng2@example.com<test.txt

Ví dụ-3: Sử dụng lệnh `mutt`

Giống như lệnh `mail`, lệnh` mutt` không được cài đặt trên Ubuntu theo mặc định. Chạy lệnh sau để cài đặt lệnh `mutt`.

$sudođúng cáchTải vềcái chết tiệt

Lệnh `mutt` hoạt động tương tự như lệnh` mail` nhưng lệnh `mutt` có trình soạn thảo riêng để gửi email. Chạy lệnh sau với địa chỉ email hợp lệ để gửi email.

$quăng đitin nhắn thử nghiệm|cái chết tiệt-NS 'Kiểm tra Email'tên tài khoản@example.com

Bạn có thể đính kèm bất kỳ tệp nào bằng cách sử dụng tùy chọn ‘-a’ với lệnh `mail` hoặc` mutt`. Lệnh sau sẽ đính kèm tệp items.txt trong khi gửi email.

$quăng đi 'thông báo thử nghiệm' |cái chết tiệt-NS 'chủ đề tin nhắn' -đếnitems.txt-tên tài khoản@gmail.com

Ví dụ-4: Sử dụng lệnh ‘SSMTP’

Một lệnh email khác là lệnh `ssmtp`. Nếu ssmtp chưa được cài đặt trước thì hãy cài đặt gói trước. Lệnh cài đặt cho ssmtp được hiển thị trong ví dụ-1. Lệnh ssmtp và sendmail hoạt động tương tự.

Chạy lệnh sau với địa chỉ email hợp lệ. Nhập chủ đề và nội dung email. Nhấn ctrl + D để thoát và gửi email.

$tên người dùng ssmtp@gmail.com

Ví dụ-5: Sử dụng lệnh mailx

Bạn có thể gửi nội dung HTML dưới dạng nội dung email mà không chỉ gửi tin nhắn văn bản. Tạo tệp HTML có tên ‘test.html’ để sử dụng làm nội dung thư.

test.html

< html >
< cơ thể người >>
< h3 >Gửi Email</ h3 >
< chế tạo kích thước='2' màu sắc='mạng lưới'>Kiểm tra nội dung Thư</ chế tạo >
<</ cơ thể người >
</ html >

Lệnh `mailx` hoạt động giống như lệnh` mail`. Bạn phải đề cập đến Content-Type là text / html để gửi nội dung HTML dưới dạng nội dung thư trong lệnh `mailx`. Lệnh sau sẽ gửi nội dung của tệp ‘test.html’ dưới dạng nội dung email.

$ mailx-đến 'Content-Type: text / html' -NS 'Gửi email bằng cách sử dụng mailx'
<test.html'[email được bảo vệ]'

Khi bạn kiểm tra hộp thư đến của tài khoản email người nhận thì danh sách các email sẽ được hiển thị như hình sau.

Phần kết luận

Sau khi thực hành đúng các lệnh trên, hy vọng bạn đọc sẽ có thể gửi email từ dòng lệnh trong Linux một cách dễ dàng.