web-dev-qa-db-fra.com

Comment changer le nom de l'expéditeur (pas l'adresse électronique) lors de l'utilisation de la commande linux mail pour l'envoi automatique de courrier

Mailbox affiche le nom de l'expéditeur sous la forme "Apache", car le courrier envoyé automatiquement est envoyé à partir d'un programme CGI Perl. Comment puis-je le changer pour autre chose?

21
therobyouknow

Vous devez simplement ajouter un en-tête From:. Par défaut, il n'y en a pas.

echo "Test" | mail -a "From: Someone <[email protected]>" [email protected]

Vous pouvez ajouter des en-têtes personnalisés à l'aide de -a:

echo "Test" | mail -a "From: Someone <[email protected]>" \
                   -a "Subject: This is a test" \
                   -a "X-Custom-Header: yes" [email protected]
24
sam hocevar
mail -s "$(echo -e "This is the subject\nFrom: Paula <[email protected]>\n
Reply-to: [email protected]\nContent-Type: text/html\n")" 
[email protected] < htmlFileMessage.txt

ce qui précède est ma solution. Il suffit de remplacer "Paula" par le nom de votre choix. Par exemple, Johny Bravo..Tous en-têtes supplémentaires peuvent être ajoutés juste après et avant la réponse à ... assurez-vous de connaître la syntaxe de votre en-tête avant. en les ajoutant .... cela a parfaitement fonctionné pour moi.

9
MoSs

Vous pouvez utiliser l'option "-r" pour définir l'adresse de l'expéditeur:

mail -r [email protected] -s ...

Si vous souhaitez également inclure votre vrai nom dans le champ from, vous pouvez utiliser le format suivant:

mail -r "[email protected] (My Name)" -s "My Subject" ...
6
RafaSashi

Si aucun en-tête De: n'est spécifié dans les en-têtes de courrier électronique, le MTA utilise le nom complet de l'utilisateur actuel, dans le cas présent "Apache". Vous pouvez éditer les noms d'utilisateur complets dans/etc/passwd

3
user1106046

Cela dépend de l'adresse de l'expéditeur dont vous parlez. L'adresse de l'expéditeur visible dans le programme de messagerie du destinataire est extraite de l'en-tête "De:". qui peut probablement être facilement défini à partir de votre programme.

Si vous parlez de l'adresse de l'expéditeur de l'enveloppe SMTP, vous pouvez passer l'argument -f au binaire sendmail. En fonction de la configuration du serveur, il se peut que vous ne soyez pas autorisé à le faire avec l'utilisateur Apache.

depuis le sendmail manpage :

   -f <address>
                 This  option  sets  the  address  of the envelope sender of a
                 locally-generated message (also known as  the  return  path).
                 The  option  can normally be used only by a trusted user, but
                 untrusted_set_sender can be set to allow untrusted  users  to
                 use it. [...]
1
Gryphius

Sur Ubuntu 14.04, aucune de ces suggestions n’a fonctionné. Postfix se substituerait à l'utilisateur système connecté en tant qu'expéditeur. Ce qui a bien fonctionné a été la solution suivante répertoriée sur ce lien -> Modifier l'adresse de messagerie sortante à partir de root @ nom_serveur - rackspace sendgrid postfix

PAS:

1) Assurez-vous que ceci est défini dans /etc/postfix/main.cf:

   smtp_generic_maps = hash:/etc/postfix/generic

2) echo 'www-data [email protected]' >>/etc/postfix/generic

3) Sudo postmap/etc/postfix/generic

4) redémarrage postfix du service Sudo

1
Andy