Tôi sử dụng SMTP từ xa thông qua nullmailer và nó yêu cầu đặt Từ trường thành tên cụ thể, nhưng cron đặt nó là root@my.sweet.server.com.
Làm thế nào tôi có thể thay đổi nó thành một cái gì đó như me@ya.ru?
Tôi sử dụng SMTP từ xa thông qua nullmailer và nó yêu cầu đặt Từ trường thành tên cụ thể, nhưng cron đặt nó là root@my.sweet.server.com.
Làm thế nào tôi có thể thay đổi nó thành một cái gì đó như me@ya.ru?
Câu trả lời:
Tôi không nghĩ bạn có thể thay đổi địa chỉ TỪ, (ai đó nên thêm tùy chọn MAILFROM).
Bạn có thể làm một cái gì đó như thế này để đạt được kết quả tương tự:
* * * * * /path/to/script 2>&1 | mail -s "Output of /path/to/script" toaddress@example.com -- -r "fromaddress@example.com" -F"Full Name of sender"
Tất cả đầu ra được dẫn đến lệnh mail để biến MAILTO hoàn toàn không được sử dụng.
Địa chỉ đến sẽ cần được đặt nhưng bạn có thể sử dụng biến $ MAILTO. - đặt phần còn lại của các tùy chọn là tùy chọn sendmail để bạn có thể sử dụng các tùy chọn -r và -F.
-s là chủ đề
-r là địa chỉ trả lời
-F là tên đầy đủ của người gửi (làm cho nó trông đẹp hơn trong các ứng dụng email)
Các phiên bản hiện đại của cron chấp nhận "MAILFROM = ..." ở định dạng crontab. Tôi khuyên bạn nên thử "man 5 crontab". Nếu nó đề cập đến MAILFROM, phiên bản của bạn sẽ hỗ trợ nó. Cụm từ cần tìm là vào cuối đoạn thảo luận về MAILTO, và nên là một cái gì đó như thế này:
If MAILFROM is defined (and non-empty), it will be used as the envelope sender address, otherwise, ''root'' will be used.
MAILFROM
ở man 5 crontab
.
cronie
để thay thế cron
trên Debian / Ubuntu. Ta-daa: MAILFROM
tồn tại:
/ etc / mailname chứa phần tên miền của địa chỉ TỪ. Nếu / etc / mailname chứa 'somecompany.com' thì cron chạy cho root sẽ có người gửi là root@somecompany.com
Bạn có thể đặt nullmailer từ địa chỉ thông qua các biến môi trường hoặc dòng lệnh. Các đối số dòng lệnh là -f
và -F
cho địa chỉ người gửi và tên đầy đủ tương ứng.
Thông thường bạn có thể đặt các biến môi trường trong crontab.
NULLMAILER_USER=webmaster
NULLMAILER_HOST=host.example.com
NULLMAILER_NAME="Mr Cron"
5 0 * * * /usr/local/bin/daily.sh
Đối với tôi, cách dễ nhất để thay đổi địa chỉ từ một hệ thống, là tạo một ~/.mailrc
tệp có nội dung như thế này:
set name="My Full Name"
set from="myrealemail@example.com"
Bất kỳ mail
lệnh nào chạy như người dùng của tôi, bây giờ sử dụng các cài đặt này.
Xem câu hỏi này nếu sử dụng Exim:
exim: Viết lại tiêu đề "Từ" sang phong bì "TỪ"
Nó nên đặt địa chỉ "Từ" cho chủ sở hữu cronjob. Bạn có thể thay thế $header_from:
bằng địa chỉ tùy chỉnh của mình nếu bạn muốn mã hóa nó thành một địa chỉ khác.
Một cách khác đơn giản là sử dụng mutt,
tạo một .muttrc trong thư mục chính của người dùng chạy cron bằng cách sau
đặt realname = "Joe User" được đặt từ = "user @ host" set use_from = yes
Chạy một kịch bản với lệnh mutt trong đó hoặc đặt lệnh cron để mutt từ để gửi email.
Trước khi mutt gửi và gửi email, nó sẽ đặt tiêu đề From từ tệp .muttrc.
nó được gửi từ tên miền @ user - người dùng là tên đăng nhập mà cron đang chạy bên dưới - vì vậy bạn phải tạo một người dùng 'tôi' - và chạy công việc cron như người dùng đó.
Sau đó, để thay đổi tên miền, có nhiều khả năng khác nhau - có thể là bạn cần thay đổi mục nhập tệp máy chủ (hoặc, như trên máy của tôi, khi tôi định cấu hình này - một hộp ubfox) - thay đổi / etc / mailname - là tên miền bạn muốn nó đến từ.