Cron'dan e-postalar için “Kimden:” alanını nasıl değiştirebilirim?


34

Nullmailer aracılığıyla uzak SMTP kullanıyorum ve alandan belirli bir ada ayarlanmasını gerektiriyor, ancak cron root@my.sweet.server.com olarak ayarlanmış.

Bunu beni@@.ru gibi bir şeye nasıl değiştirebilirim?


Hangi cron uygulaması (ve işletim sistemi)?
Kimvais

Bu soruya bakınız: serverfault.com/questions/438843/… başka bir çözüm için.
robin

Yanıtlar:


13

FROM adresini değiştirebileceğinizi sanmıyorum (birisi MAILFROM seçeneği eklemeli).

Benzer bir sonuç elde etmek için yine de böyle bir şey yapabilirsiniz:

* * * * * /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üm çıktılar mail komutuna gönderilir, böylece MAILTO değişkeni hiç kullanılmaz.

Adresin ayarlanması gerekir, ancak $ MAILTO değişkenini kullanabilirsiniz. - seçeneklerin geri kalanını sendmail seçenekleri olarak ayarlar, böylece -r ve ve -F seçeneklerini kullanabilirsiniz.

-s konu

-r cevap adresi

-F gönderenin tam adıdır (e-posta istemcilerinde güzel görünmesini sağlar)


serverfault.com/a/437319/30697 Muhtemelen Kabul edilen cevap olmalıdır.
lkraav

34

Modern cron versiyonları crontab formatında "MAILFROM = ..." kabul eder. "Adam 5 crontab" ı denemeni öneririm. MAILFROM'dan bahsederse, sürümünüz bunu desteklemelidir. Aranacak ifade, MAILTO'yu tartışan paragrafın sonuna doğru ve şöyle bir şey olmalı:

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


6
"Modern" ne anlama geliyor? Bu, Debian'daki kararsız (3.0pl1-124) içindeki en son cron sürümü tarafından desteklenmiyor.
Flimzy

thx, bu benim için Archlinux'da işe yaradı. Cron'un birçok farklı tadı var. Debian'ın ISC'si 2004'ten bu yana “modern” tanımını genişletiyor, ancak hangi sistemde kullanıldığı hakkında hiçbir bilgi olmadan - bu ayrıntıyı vermek zor!
RuiDC

1
Ne yazık ki, (en azından 14.04 itibariyle LTS) Ubuntu'nun cron bahsedilmiyor vardır MAILFROMiçinde man 5 crontab.
Arto Bendiken 13:14

4
Debian / Ubuntu'da croniedeğiştirmek croniçin yükleyebilirsiniz . Ta-daa: MAILFROMvar:
Andreas Klöckner

1
cronie Ubuntu 16.04'de mevcut değil
alex k

7

/ etc / mailname, FROM adresinin alan adı kısmını içerir. Eğer / etc / mailname 'somecompany.com' içeriyorsa, root için çalışan cron root@somecompany.com olarak gönderirdi.


2
Burada bazı bilgiler: wiki.debian.org/EtcMailName - nullmailer kullanıyorsa söylemez. Sendmail kullanıyorum ve bunun için işe yaramadı.
Zitrax,

5

Boş vericiyi adresden ortam değişkenleri veya komut satırı üzerinden ayarlayabilirsiniz. Komut satırı argümanları vardır -fve -Fsırasıyla gönderici adresi ve tam adı için.

Genellikle ortam değişkenlerini crontab'da ayarlayabilirsiniz.

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

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

FROM hakkında soruyor: TO:
Kimvais

Hm, bu bilinmeyen bir nedenden dolayı çalışmıyor.
Alexander Artemenko

3

Benim için, sistemdeki adresi değiştirmenin en kolay yolu, ~/.mailrcşunun gibi içeriğe sahip bir dosya oluşturmaktır :

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

mailKullanıcı olarak çalışan komutlardan herhangi biri şimdi bu ayarları kullanıyor.



0

Bir diğer basit alternatif, mutt kullanmaktır.

  • Aşağıdaki ile cron çalıştıran kullanıcının giriş dizininde bir .muttrc oluşturun.

    set realname = "Joe User" = "user @ host" set = set use_from = evet

  • İçinde mutt komutuyla bir komut dosyası çalıştırın veya cron komutunu e-posta göndermek için sessize alın.

Mutt göndermeden ve e-posta göndermeden önce, .muttrc dosyasındaki Kimden başlığını ayarlayacaktır.


0

Ben değiştirmek zorunda /etc/mail/sendmail.cfve /etc/mail/sendmail.mcçünkü /etc/mailnamekullanılmamıştır. Kullanıcıyı değil yalnızca etki alanından değiştirir.


0

Gönderen alanınızı değiştirmek için uygulayabileceğiniz birkaç şey:

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

-2

kullanıcı @ etki alanından postalanır - kullanıcı cron'un altında çalıştığı oturum açma adıdır - bir kullanıcı 'ben' oluşturmanız gerekir - ve cron işini o kullanıcı olarak çalıştırmanız gerekir.

Sonra etki alanını değiştirmek için farklı olasılıklar vardır - ana bilgisayar dosya girişini değiştirmeniz gerekebilir (veya makinemde olduğu gibi, bunu yapılandırırken - bir ubuntu kutusu) - değişiklik / etc / mailname - gelmesini istediğiniz alan.


1
Bu aslında doğru değil - en azından pek çok durumda. Örneğin, sistemimde, 'user @ domain' değil, yalnızca 'user' ile gönderilir. Yerel etki alanı adını eklemek MTA'nın sorumluluğundadır. Bu, MTA'mın (çok karmaşık ve açıklayıcı nedenlerden dolayı) etki alanı adını eklemediği bazı durumlarda (benimki gibi) önemlidir.
Flimzy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.