Używam esmtp do wysyłania wiadomości e-mail jako danych wyjściowych zadania cron. Serwer SMTP i konfiguracja poświadczeń są przechowywane pod moim $ HOME / .esmtprc. Wygląda jednak na to, że zmienna $ HOME env jest ustawiona na „/”, a nie na HOME z / etc / passwd, jak sugeruje instrukcja. Zmieniłem / usr / sbin / sendmail na wyjściowe zmienne środowiskowe do pliku i widzę to:
HOME = „/”
Nagłówki wiadomości e-mail zawierają jednak:
X-Cron-Env: <HOME = / home / nazwa użytkownika>
który jest poprawny. Dlaczego więc $ HOME nie jest ustawione dla esmtp?
email
environment-variables
cron
mehturt
źródło
źródło
sudo
lub coś innego, co resetuje twoje środowisko? Czy zastanawiałeś się nad użyciemenv
do jawnego ustawienia katalogu domowego dla tegosendmail
procesu?Odpowiedzi:
Zakładam, że masz na myśli crona użytkownika, być może coś, do czego możesz dostać się poprzez 'crontab -e' jako konkretny użytkownik.
Często zadania crona są uruchamiane z $ HOME ustawionym na „/”.
W niektórych wersjach crona możesz to zmienić, dodając wiersz do crontab.
na przykład, możesz zrobić 'crontab -e', a następnie mieć linie wzdłuż następujących
lub coś podobnego
źródło