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" [email protected] -- -r "[email protected]" -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)

Richard Holloway
źródło
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.

Jon Green
źródło
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 [email protected]

użytkownik171601
źródło
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
Lachlan Roche
źródło
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="[email protected]"

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

Niels de Vos
źródło
0

Zobacz to pytanie, jeśli używasz Exim:

exim: Przepisz nagłówek „From” do koperty „FROM”

Powinien ustawić adres „Od” na właściciela kroniki. Możesz zastąpić $header_from:swój niestandardowy adres, jeśli chcesz na stałe zakodować go w innym celu.

Vladimir Panteleev
źródło
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.

Chida
źródło
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.

Rudie
źródło
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
Tarik
źródło
-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.

Kem Mason
źródło
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