Làm thế nào để gửi email từ dòng lệnh hoặc tập lệnh? Tôi muốn có thể chạy tập lệnh theo chương trình bằng cách chuyển người nhận và tin nhắn.
Làm thế nào để gửi email từ dòng lệnh hoặc tập lệnh? Tôi muốn có thể chạy tập lệnh theo chương trình bằng cách chuyển người nhận và tin nhắn.
Câu trả lời:
mail -s subject someone@example.com
gõ tin nhắn của bạn, nhấn Ctrl+D
để kết thúc
echo This will be the body of the email | mail -s "This is the Subject" destination@example.com
Có hai chương trình mà tôi biết sẽ dễ dàng cho phép bạn định cấu hình máy Mac của mình để gửi email từ dòng lệnh.
Tôi đã viết lên HOWTO cho cả hai:
Trong hai, tôi đề nghị msmtp
.
Cấu hình đủ phức tạp đến nỗi tôi không chắc mình có nên sao chép tất cả các bước ở đây không, nhưng tôi sẽ đề cập rằng nếu bạn sử dụng Homebrew, bạn có thể cài đặt msmtp bằng
brew install msmtp --with-macosx-keyring
Sau đó, phần còn lại chỉ là vấn đề thiết lập các tệp cấu hình liên quan
Đầu tiên là /usr/local/etc/msmtprc
# Begin msmtprc
# Set default values for all following accounts.
defaults
tls on
logfile ~/.msmtp.log
# A first gmail address
account example@gmail.com
host smtp.gmail.com
port 587
protocol smtp
auth on
from example@gmail.com
user example@gmail.com
tls on
tls_starttls on
# this next line is crucial: you have to point to the correct security certificate for GMail.
# If this doesn't work, check the mstmp documentation
# at http://msmtp.sourceforge.net/documentation.html for help
#
# This next line should all be on one long line:
tls_trust_file /path/to/Thawte Roots/Thawte SSLWeb Server Roots/thawte Premium Server CA/Thawte Premium Server CA.pem
# Set a default account
# You need to set a default account for Mail
account default : example@gmail.com
# end msmtprc
Lưu ý rằng tls_trust_file
dòng nên trỏ đến bất cứ nơi nào bạn đã tải xuống và cài đặt chứng chỉ từ https://www.thawte.com/roots/index.html .
Tôi đặt cái của tôi vào ~/Dropbox/Thawte Roots
để tôi có thể có nó trên tất cả các máy Mac của tôi.
Sau đó, bạn cần một ~/.mailrc
tập tin để nói vị trí của nhị phân msmtp. Nếu bạn sử dụng brew
nó sẽ là /usr/local/bin/msmtp
như vậy tập tin sẽ như thế này:
set sendmail="/usr/local/bin/msmtp"
Bước cuối cùng nhưng rất quan trọng là đảm bảo Keychain của bạn có thông tin chính xác theo định dạng mà msmtp sẽ mong đợi:
Tôi nghĩ rằng bao gồm hầu hết các chi tiết. Xem http://www.tuaw.com/2010/05/04/msmtp-a-free-tool-to-send-email-from-terminal/ nếu bạn muốn biết thêm một vài chi tiết cụ thể.
example@gmail.com
địa chỉ email Gmail hoặc Google Apps của bạn.
~/.msmtprc
Cách cơ bản nhất để gửi thư là máng một phiên telnet với máy chủ smtp của nhà cung cấp / mạng của bạn. Sau khi bạn liên hệ với máy chủ và sau mỗi lệnh, máy chủ sẽ trả lời nếu nó chấp nhận lệnh với nội dung như "250 OK" hoặc nếu không có thông báo lỗi.
Tất cả các chi tiết có thể được tìm thấy trong RFC2821 - Giao thức chuyển thư đơn giản, Google cho nó. Cách cơ bản này rất tốt để kiểm tra lý do tại sao có sự cố gửi thư, nhưng tôi nghĩ nó khá phức tạp để kịch bản chứng minh đầy đủ.
Trước tiên hãy lấy giao diện dòng lệnh trên máy tính của bạn, bằng cách khởi động Terminal. Sau đó tiếp tục với các lệnh sau, từng lệnh một.
Mở phiên telnet tới cổng 25 của máy chủ smtp của nhà cung cấp / mạng của bạn
telnet name_or_ip_of_smtp_server 25
nói xin chào cộng với tên internet của nhà cung cấp / mạng của bạn, như abc.com
EHLO name_of_your_network
a from = return address là cần thiết, <và> là một phần của lệnh
MAIL FROM:<your_email_adress>
đưa ra một hoặc nhiều đích, <và> là một phần của lệnh
RCPT TO:<destination_email_address>
RCPT TO:<second_destination_email_address>
RCPT TO:<etc_destination_email_address>
nói với máy chủ bạn muốn bắt đầu gửi dữ liệu
DATA
bây giờ máy chủ sẽ trả lời bạn có thể bắt đầu gửi thư của mình và chuyển sang chế độ dữ liệu
your data
more data
etc
Bây giờ kết thúc dữ liệu với một dấu chấm như chỉ char trên một dòng
.
máy chủ quay trở lại chế độ lệnh để bạn có thể thoát
QUIT
Điều này làm việc cho tôi, nó được viết với Lion trong tâm trí nhưng hoạt động cho Mountain Lion. Btw đây là sử dụng Gmail vì vậy nếu bạn không ...
Bạn không cần phải tải xuống bất cứ điều gì! (chỉ cần thiết lập một tài khoản gmail)
http://www.anujgakhar.com/2011/12/09/USE-macosx-lion-command-line-mail-with-gmail-as-smtp/
Định cấu hình Postfix cho Gmail SMTP Chỉnh sửa tệp /etc/postfix/main.cf
sudo vim /etc/postfix/main.cf
và thêm vào dưới đây bên dưới các rơ le nhận xét: -
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_sasl_mechanism_filter = plain
Tạo sasl_password nếu chưa tồn tại
sudo vim /etc/postfix/sasl_passwd
và nhập vào như sau: -
[smtp.gmail.com]:587 username@gmail.com:password
Chạy các lệnh sau
sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
sudo launchctl stop org.postfix.master
sudo launchctl start org.postfix.master
Và bạn đã hoàn thành.
Bây giờ, bạn sẽ có thể gửi email từ trong dòng lệnh, ví dụ: để gửi nội dung của một thư mục dưới dạng cây đến một địa chỉ email
tree /var/www/somefolder | mail -s "contents" your@yourdomain.com
mtcmail là một tùy chọn khác: http://www.macupdate.com/app/mac/33505/mtcmail-cli .
[Bỏ qua văn bản bổ sung này. Đã thêm vì: cơ thể phải có ít nhất 30 ký tự; bạn đã nhập 27.]