Como alterar o campo “From:” para emails de Cron?

32

Eu uso o SMTP remoto via nullmailer e requer o set de campo para o nome específico, mas o cron configura como [email protected].

Como eu poderia mudar isso para algo como [email protected]?

    
por Alexander Artemenko 10.03.2010 / 12:14

9 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" [email protected] -- -r "[email protected]" -F"Full Name of sender"

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

O endereço to precisa ser definido, mas você pode usar a variável $ MAILTO. O - define o resto das opções para serem opções do sendmail, para que você possa usar as opções -re e -F.

-s é o assunto

-r é o endereço de resposta

-F é o nome completo do remetente (faz com que pareça legal nos clientes de email)

    
por 10.03.2010 / 17:10
33

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

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

    
por 11.10.2012 / 16:33
6

/ etc / mailname contém a parte do nome de domínio do endereço FROM. Se / etc / mailname contiver 'somecompany.com', então o cron executando para root terá o remetente como [email protected]

    
por 29.04.2013 / 08:41
5

Você pode definir o endereço de e-mail nulo por meio de variáveis de ambiente ou linha de comando. Os argumentos da linha de comando são -f e -F para o endereço do remetente e nome completo, respectivamente.

Normalmente 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
    
por 10.03.2010 / 13:13
2

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

set name="My Full Name"
set from="[email protected]"

Qualquer um dos comandos mail que são executados como meu usuário agora usam essas configurações.

    
por 29.10.2015 / 15:34
0

Veja esta pergunta se estiver usando o Exim:

exim: regravar o cabeçalho "De" para o envelope "FROM"

Deve definir o endereço "De" para o proprietário do cronjob. Você pode substituir $header_from: pelo seu endereço personalizado se quiser codificá-lo para outra coisa.

    
por 12.08.2012 / 13:39
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="Usuário do Joe" conjunto de="usuário @ host" set use_from = yes

  • Execute um script com o comando mutt nele ou canalize o comando cron para o mutt de para enviar email.

Antes de o mutt enviar e-mail, ele irá definir o cabeçalho De do arquivo .muttrc.

    
por 12.08.2012 / 13:50
0

Eu tive que alterar /etc/mail/sendmail.cf e /etc/mail/sendmail.mc , porque /etc/mailname não foi usado. Apenas altera o domínio, não o usuário.

    
por 20.01.2018 / 14:25
-2

ele é enviado pelo usuário @ domain - o usuário é o nome de login no qual o cron está sendo executado - portanto, você teria que criar um usuário 'eu' - e executar o cron job como esse usuário. / p>

Em seguida, para alterar o domínio, existem diferentes possibilidades - pode ser que você precise alterar a entrada do arquivo de hosts (ou, como na minha máquina, quando eu estava configurando isso - uma caixa do Ubuntu) - alterar / etc / mailname - para ser o domínio que você quer que ele venha.

    
por 01.03.2011 / 01:25