Como alterar o campo "De:" para e-mails do Cron?


Respostas:


13

Eu não acho que você possa alterar o endereço FROM (alguém deve adicionar uma opção MAILFROM).

Você pode fazer algo assim para obter um resultado semelhante:

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

Toda a saída é canalizada para o comando mail, para que a variável MAILTO não seja usada.

O endereço para precisa ser definido, mas você poderá usar a variável $ MAILTO. O - define o restante das opções como opções do sendmail, para que você possa usar as opções -r e -F.

-s é o assunto

-r é o endereço de resposta

-F é o nome completo do remetente (faz com que pareça agradável em clientes de email)


serverfault.com/a/437319/30697 provavelmente deve ser a resposta Aceita.
lkraav

34

As versões modernas do cron aceitam "MAILFROM = ..." no formato crontab. Eu sugiro que você tente "man 5 crontab". Se ele mencionar MAILFROM, sua versão deverá suportá-lo. A frase a procurar é no final do parágrafo discutindo MAILTO, e deve ser algo como isto:

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


6
Onde "moderno" significa o que? Isso não é suportado pela versão mais recente do cron no Debian unstable (3.0pl1-124), pelo que posso ver no changelog ou na documentação.
Flimzy

thx, isso funcionou para mim no Archlinux. Existem muitos sabores diferentes de cron. O ISC do Debian é de 2004, ampliando a definição de "moderno", mas sem informações sobre em que sistema ele está sendo usado - é difícil fornecer esses detalhes!
precisa saber é o seguinte

11
Infelizmente, o cron do Ubuntu (pelo menos a partir de 14.04 LTS) não faz menção a MAILFROMin man 5 crontab.
Arto Bendiken

4
Você pode instalar croniepara substituir cronno Debian / Ubuntu. Nota: MAILFROMexiste:
Andreas Klöckner

11
cronie não existe no Ubuntu 16.04
alex k

7

/ etc / mailname contém a parte do nome de domínio do endereço FROM. Se / etc / mailname contiver 'somecompany.com', o cron em execução no root terá remetente como root@somecompany.com


2
Algumas informações aqui: wiki.debian.org/EtcMailName - não informa se o nullmailer o usa. Eu uso o sendmail e ele não parece funcionar para isso.
Zitrax 30/01

5

Você pode definir o nullmailer do endereço por meio de variáveis ​​de ambiente ou linha de comando. Os argumentos da linha de comando são -fe -Fpara o endereço do remetente e o nome completo, respectivamente.

Geralmente você pode definir variáveis ​​de ambiente no crontab.

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

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

Ele está perguntando sobre FROM: não:
Kimvais

Hum, isso não funciona por motivo desconhecido.
Alexander Artemenko

3

Para mim, a maneira mais fácil de alterar o endereço de origem em um sistema é criar um ~/.mailrcarquivo com conteúdo como este:

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

Qualquer um dos mailcomandos que são executados como meu usuário, agora use essas configurações.



0

Outra alternativa simples é usar o mutt,

  • crie um .muttrc no diretório inicial do usuário que executa o cron com o seguinte

    set realname = "Joe User" set from = "user @ host" set use_from = yes

  • Execute um script com o comando mutt nele ou envie o comando cron para fazer o mutt para enviar email.

Antes que o mutt envie e envie por email, ele definirá o cabeçalho From no arquivo .muttrc.


0

Eu tive que mudar /etc/mail/sendmail.cfe /etc/mail/sendmail.mc, porque /etc/mailnamenão foi usado. No entanto, apenas altera o domínio from, não o usuário.


0

Aqui estão algumas coisas que você pode aplicar para alterar o domínio do remetente:

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

-2

é enviado pelo usuário @ domínio - o usuário é o nome de login sob o qual o cron está sendo executado - portanto, você deve criar um usuário 'eu' - e executar o trabalho do cron como esse usuário.

Então, para mudar o domínio, existem diferentes possibilidades - pode ser que você precise alterar a entrada do arquivo hosts (ou, como na minha máquina, quando eu estava configurando isso - uma caixa do ubuntu) - altere / etc / mailname - para ser o domínio do qual você deseja que ele venha.


11
Isso não é verdade - pelo menos não em muitos casos. No meu sistema, por exemplo, ele é enviado apenas de 'usuário', não 'usuário @ domínio'. É de responsabilidade do MTA adicionar o nome de domínio local. Isso é significativo em alguns casos (como o meu) em que meu MTA (por motivos muito complicados e chatos de descrever) não está adicionando o nome de domínio.
Flimzy
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.