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.