Jak zmienić pole „Od:” dla e-maili od Crona?


Odpowiedzi:


13

Nie sądzę, że możesz zmienić adres FROM (ktoś powinien dodać opcję MAILFROM).

Możesz zrobić coś takiego, aby osiągnąć podobny wynik:

* * * * * /path/to/script 2>&1 | mail -s "Output of /path/to/script" toaddress@example.com -- -r "fromaddress@example.com" -F"Full Name of sender"

Wszystkie dane wyjściowe są przesyłane do komendy mail, więc zmienna MAILTO w ogóle nie jest używana.

Adres musi być ustawiony, ale możesz użyć zmiennej $ MAILTO. Opcja - ustawia pozostałe opcje jako opcje sendmaila, dzięki czemu można używać opcji -r i -F.

-s jest przedmiotem

-r to adres zwrotny

-F to pełna nazwa nadawcy (sprawia, że ​​ładnie wygląda w klientach e-mail)


serverfault.com/a/437319/30697 prawdopodobnie powinien być odpowiedzią zaakceptowaną.
lkraav,

34

Nowoczesne wersje crona akceptują „MAILFROM = ...” w formacie crontab. Proponuję spróbować „man 5 crontab”. Jeśli wspomina o MAILFROM, Twoja wersja powinna go obsługiwać. Wyrażenie, którego należy szukać, znajduje się pod koniec akapitu omawiającego MAILTO i powinno być mniej więcej takie:

If MAILFROM is defined (and non-empty), it will be used as the envelope sender address, otherwise, ''root'' will be used.


6
Gdzie „nowoczesny” oznacza co? To nie jest obsługiwane przez najnowszą wersję crona w niestabilnej Debianie (3.0pl1-124) z tego, co widzę w dzienniku zmian lub dokumentacji.
Flimzy

dzięki, działało to dla mnie na Archlinux. Istnieje wiele różnych smaków cron. ISC Debiana pochodzi z 2004 roku, więc rozszerza definicję „nowoczesnego”, ale bez informacji na temat systemu, na którym jest używany - trudno podać te szczegóły!
RuiDC

1
Niestety, cron Ubuntu (przynajmniej od 14.04 LTS) nie ma wzmianki MAILFROMw man 5 crontab.
Arto Bendiken,

4
Możesz zainstalować, cronieaby zastąpić cronna Debian / Ubuntu. Ta-daa: MAILFROMistnieje:
Andreas Klöckner

1
cronie nie istnieje na Ubuntu 16.04
alex k

7

/ etc / mailname zawiera część nazwy domeny adresu FROM. Jeśli / etc / mailname zawiera „somecompany.com”, to cron działający dla roota miałby nadawcę jako root@somecompany.com


2
Kilka informacji tutaj: wiki.debian.org/EtcMailName - nie mówi, czy nullmailer go używa. Korzystam z sendmaila i wydaje się, że to nie działa.
Zitrax

5

Możesz ustawić nullmailer z adresu poprzez zmienne środowiskowe lub wiersz poleceń. Argumenty wiersza poleceń są -fi -Fdla adresu nadawcy i pełnej nazwy, odpowiednio.

Zwykle możesz ustawić zmienne środowiskowe w crontab.

NULLMAILER_USER=webmaster
NULLMAILER_HOST=host.example.com
NULLMAILER_NAME="Mr Cron"

5 0 * * * /usr/local/bin/daily.sh

Pyta

Hm, to nie działa z nieznanego powodu.
Alexander Artemenko

3

Dla mnie najłatwiejszym sposobem na zmianę adresu z w systemie jest utworzenie ~/.mailrcpliku o takiej zawartości:

set name="My Full Name"
set from="myrealemail@example.com"

Wszelkie mailpolecenia uruchamiane jako mój użytkownik używają teraz tych ustawień.



0

Inną prostą alternatywą jest użycie mutta,

  • utwórz .muttrc w katalogu osobistym użytkownika, który uruchamia cron z następującymi elementami

    set realname = „Joe User” set from = „user @ host” set use_from = yes

  • Uruchom skrypt z komendą mutt lub potokuj komendę cron, z której mutt wysyła wiadomość e-mail.

Zanim mutt wyśle ​​i wyśle ​​e-mail, ustawi nagłówek From z pliku .muttrc.


0

Musiałem się zmienić /etc/mail/sendmail.cfi /etc/mail/sendmail.mc, ponieważ /etc/mailnamenie był używany. Zmienia tylko domenę, a nie użytkownika.


0

Oto kilka rzeczy, które możesz zastosować, aby zmienić domenę nadawcy:

Edit this file: /etc/mailname and change to:
    example.org
sudo postconf -e 'myhostname= example.org'
sudo systemctl restart postfix

-2

jest wysyłany pocztą od użytkownika @ domena - użytkownik to nazwa logowania, pod którą działa cron - więc musisz utworzyć użytkownika „ja” - i uruchomić zadanie cron jako ten użytkownik.

Następnie, aby zmienić domenę, istnieją różne możliwości - być może trzeba zmienić wpis pliku hosta (lub, tak jak na moim komputerze, kiedy to konfigurowałem - pole ubuntu) - zmień / etc / mailname - być domeną, z której chcesz, aby pochodziła.


1
To nie jest tak naprawdę prawda - przynajmniej nie w wielu przypadkach. Na przykład w moim systemie jest wysyłany tylko od „użytkownika”, a nie „użytkownika @ domeny”. Dodanie lokalnej nazwy domeny jest obowiązkiem MTA. Jest to istotne w niektórych przypadkach (takich jak moje), w których mój MTA (z powodów zbyt skomplikowanych i nudnych do opisania) nie dodaje nazwy domeny.
Flimzy 24.12.12
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.