Eu uso o SMTP remoto via nullmailer e ele requer o campo Set From para o nome específico, mas o cron é definido como root@my.sweet.server.com.
Como eu poderia mudar para algo como me@ya.ru?
Eu uso o SMTP remoto via nullmailer e ele requer o campo Set From para o nome específico, mas o cron é definido como root@my.sweet.server.com.
Como eu poderia mudar para algo como me@ya.ru?
Respostas:
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)
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.
MAILFROM
in man 5 crontab
.
cronie
para substituir cron
no Debian / Ubuntu. Nota: MAILFROM
existe:
/ 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
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 -f
e -F
para 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
Para mim, a maneira mais fácil de alterar o endereço de origem em um sistema é criar um ~/.mailrc
arquivo com conteúdo como este:
set name="My Full Name"
set from="myrealemail@example.com"
Qualquer um dos mail
comandos que são executados como meu usuário, agora use essas configurações.
Veja esta pergunta se estiver usando o Exim:
exim: reescreva o cabeçalho "De" para o envelope "FROM"
Ele deve definir o endereço "De" como o proprietário do cronjob. Você pode substituir $header_from:
por seu endereço personalizado se desejar codificá-lo para outra coisa.
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.
é 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.