Estou usando o pacote ssmtp para enviar e-mail via g-mail. Tudo está funcionando bem com ele - a única coisa estranha é que se eu enviar e-mail pela linha de comando, o "campo para" fica estranho.
ssmtp [email protected] < message.txt
Basicamente, o campo “para” dirá apenas “destinatários não divulgados”
Eu li que você pode definir cabeçalhos contendo um campo "Para:", mas isso parece muito complicado quando uso o mail
comando em outros sistemas, ele fará isso automaticamente.
Existe uma maneira mais fácil de enviar e-mails pela linha de comando ssmtp
- mas sem precisar alterar a sintaxe acima ou especificar parâmetros adicionais? (possivelmente um arquivo de configuração para definir o endereço "para" como qualquer um que tenha sido especificado.
Responder1
Esta situação vem de um mal-entendido sobre o que ssmtp
está fazendo. Há uma diferença muito importante entre a mensagemenvelope(que servidores de correio usam para rotear correio) e a mensagemcorpo(que é exibido no seu cliente de e-mail). Ambos podem ter To
e From
e podem ser diferentes um do outro. Isso éOK!
ssmtp
apenas cria o envelope e facilita a transferência da mensagem para o MTA. Ele espera que o corpo que você passa esteja totalmente formado econtém todos os cabeçalhos do corpo. Ele não adicionará nenhum para você* (embora insira cabeçalhos de manipulação de mensagens, por exemplo, Received-by
, et al.). Tenho certeza que você também percebeu que também não há nada Subject:
com essas mensagens.
Portanto, a resposta à sua pergunta é que o To:
campo precisa ser incluído no arquivo message.txt
.
Para que os To:
campos Subject:
e apareçam você precisa formatar message.txt
assim:
To: [email protected]
Subject: Message for you
Message text starts here.
blah blah blah.
*Isso não é exatamente verdade. Como um From:
cabeçalho é o único cabeçalho obrigatório, ele será derivado do envelope e inserido se estiver faltando.