Trong khi làm việc với dòng lệnh, có những lúc bạn có thể muốn gửi email một cách thủ công để truyền đạt thông tin một lớp, nói một lệnh phức tạp hoặc một lưu ý quan trọng cho bản thân hoặc một người bạn. Thông thường, yêu cầu bạn phải mở một trình duyệt web, đăng nhập vào tài khoản email của bạn, khung một email chứa các thông tin cần thiết, và sau đó gửi nó.

Quá trình này quá dài, phải không? Điều gì nếu bạn có thể làm điều đó từ dòng lệnh chính nó? Có, có thể, và chúng tôi đã thảo luận một vài cách để làm điều đó trong Linux. Trong bài viết này, chúng tôi sẽ thảo luận thêm ba cách để gửi email từ dòng lệnh trong Linux.

Gửi thư

Sendmail, như bạn có thể biết, là máy chủ SMTP cổ điển từ thế giới UNIX. Nó thường được cài đặt sẵn trên nhiều bản phân phối Linux, nhưng nếu đó không phải là trường hợp với hộp Linux của bạn, bạn có thể dễ dàng cài đặt nó từ các kho lưu trữ chuẩn. Ví dụ, người dùng các hệ thống dựa trên Debian, như Ubuntu, có thể tải xuống và cài đặt nó bằng cách sử dụng lệnh sau:

 sudo apt-get cài đặt mailutils 

Sau khi cài đặt, bạn có thể dễ dàng và nhanh chóng gửi email bằng cách sử dụng lệnh sendmail . Đây là một ví dụ:

 echo "Đây là một email thử nghiệm một lần nữa" | sendmail [địa chỉ email người nhận] 

Lệnh trên gửi một email chứa văn bản “Đây là một email thử nghiệm một lần nữa” đến “[địa chỉ email nhận”] (hãy đảm bảo thay thế nó, bao gồm cả các dấu ngoặc, với địa chỉ email thực của người nhận].

Khi tôi sử dụng địa chỉ email của mình trong lệnh trên, tôi nhận được email sau:

Như trong trường hợp của tôi, email có thể nằm trong thư mục spam của bạn, vì vậy hãy nhớ kiểm tra ở đó.

Lệnh mà chúng ta vừa sử dụng chỉ chứa phần thân của email. Bạn cũng có thể thêm các chi tiết khác như chủ đề, từ và hơn thế nữa. Ví dụ, lệnh sau đây chứa các trường bổ sung này và có thể chạy dưới dạng tập lệnh:

 echo "From: [email protected] Tới: [email protected] Chủ đề: Kiểm tra HTML e-mail Đây là một email thử nghiệm." | sendmail -t 

Đây là ảnh chụp nhanh của email tôi nhận được khi lệnh trên được chạy:

Telnet

Bạn cũng có thể sử dụng lệnh Telnet để gửi email từ dòng lệnh. Để làm như vậy, hãy chạy các lệnh sau (đảm bảo thay thế “[địa chỉ email người gửi]” và “[địa chỉ email người nhận]” bằng địa chỉ email của người gửi và người nhận tương ứng):

 telnet localhost smtp ehlo gmail.com mail từ: [người gửi-email-address] rcpt tới: [receivers-email-address] data 

Tại thời điểm này, bạn sẽ thấy một dấu nhắc nơi bạn cần phải nhập vào phần thân của email và đảm bảo rằng thư kết thúc bằng một dòng mới theo sau là dấu chấm (.). Sau khi hoàn tất, nhấn enter để gửi email, sau đó gõ quit để thoát khỏi ứng dụng.

Trong trường hợp của tôi, tôi nhận được email sau:

Ssmtp

SSMTP là một công cụ cung cấp email từ một máy tính cục bộ đến một mailhost được cấu hình (mailhub). Người dùng Debian có thể tải xuống và cài đặt chương trình bằng cách sử dụng lệnh sau:

 sudo apt-get cài đặt ssmtp 

Sau khi cài đặt, mở tập tin /etc/ssmtp/ssmtp.conf và chỉnh sửa nó để đảm bảo rằng nó chứa thông tin sau:

 mailhub = smtp.gmail.com: 587 UseSTARTTLS = YES AuthUser = [địa chỉ email người gửi] AuthPass = [người gửi-email-đăng nhập-mật khẩu] TLS_CA_File = / etc / pki / tls / certs / ca-bundle.crt 

Như mọi khi, hãy đảm bảo thay thế “[địa chỉ email người gửi]” và “[người gửi-email-đăng nhập-mật khẩu]” với các giá trị thích hợp. Bây giờ, để gửi email bằng ssmtp, sử dụng lệnh sau:

 ssmtp [recipient-email-address] Chủ đề: [subject-line-here] [Nội dung email] 

Một lần nữa, thay thế “[địa chỉ email người nhận” ”, “ [chủ đề-dòng-đây] ”và“ [Nội dung email] ”với các giá trị thích hợp và gửi email bằng cách nhấn“ Ctrl + D. ”

Nếu bạn nhận được lỗi sau,

 ssmtp: Ủy quyền không thành công (534 5.7.9 http://support.google.com/accounts/bin/answer.py?answer=185833 bk8sm8525341pad.28 - gsmtp) 

thì có thể vì Gmail không xử lý ssmtp như một ứng dụng bảo mật. Để loại bỏ lỗi này, bạn cần phải thay đổi một cài đặt cụ thể trong tài khoản Gmail của mình - để biết thêm thông tin về cách thực hiện điều đó và các rủi ro tiềm ẩn của nó, hãy tham khảo trang hỗ trợ của Google này.

Khi tôi thực hiện lệnh trên, tôi nhận được email sau:

Phần kết luận

Với điều này, chúng tôi đã thảo luận tổng cộng 5 công cụ dòng lệnh mà bạn có thể sử dụng để gửi email từ dòng lệnh Linux. Một điểm quan trọng đáng nói đến ở đây là ngoài việc sử dụng các lệnh này để gửi email bằng tay từ dòng lệnh, bạn cũng có thể sử dụng chúng để tạo email thông báo từ tập lệnh.

Bạn đã bao giờ sử dụng bất kỳ công cụ nào trong số những công cụ này chưa? Trải nghiệm của bạn thế nào? Chia sẻ suy nghĩ của bạn trong phần bình luận bên dưới.