J'ai utilisé le code suivant pour envoyer des messages à partir de mon application Web à l'aide d'un compte gmail. Ma question est, puis-je changer l'adresse de l'expéditeur en une autre adresse que l'adresse de l'expéditeur d'origine (gmail)? Mon code est le suivant:
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
System.Net.NetworkCredential cred = new System.Net.NetworkCredential("[email protected]", "*******");
Quoi que je fasse est inutile car je reçois toujours du courrier de [email protected]
. Est-il possible de le changer?
J'ai changé pour mail.From = new System.Net.Mail.MailAddress("[email protected]");
mais j'ai reçu le courrier avec l'adresse de l'expéditeur [email protected]
Et non de la nouvelle adresse "De". Je pense que gmail smtp écrase l'adresse de l'expéditeur avec les informations d'identification d'origine.
Gmail ne vous permet pas de remplacer le FROM par quelque chose de différent de votre compte Gmail.
Peu importe ce que vous utilisez, ils l'écrasent avant de le relayer. Cela empêche le spamming/spoofing.
Voici la solution:
Ça marche pour moi
Oui, utilisez simplement la propriété From de MailMessage
par exemple.
mail.From = "[email protected]";
[~ # ~] modifier [~ # ~] : Consultez également cet article pour des informations plus détaillées sur la façon d'envoyer des e-mails via gmail en C #
Envoi d'e-mails dans .NET via Gmail
EDIT: Bien que cela fonctionne pour le courrier en général, il semble que cela ne fonctionnera pas pour gmail car google l'écrase avant son envoi (voir la réponse de @Dave wanta )
Si vous avez un nombre limité d'expéditeurs, vous pouvez faire comme suggéré @philip. Par exemple, vous pouvez avoir [email protected]
, [email protected]
Et [email protected]
Ou même [email protected]
. Tant qu'ils sont des expéditeurs approuvés sur le site Web gmail.com
Que vous pouvez envoyer depuis eux.
Gmail.com: envoi de courrier à partir d'une autre adresse
Si vous vous attendez à envoyer d'un utilisateur arbitraire (comme un formulaire de service client sur un site Web où l'utilisateur saisit son e-mail et que vous ne voulez pas qu'il vous envoie un e-mail directement), la meilleure chose à faire est la suivante:
msg.ReplyToList.Add(new System.Net.Mail.MailAddress(email, friendlyName));
Si vous êtes dans un environnement contrôlé, cela fonctionne très bien, mais veuillez noter que j'ai vu certains clients de messagerie envoyer à l'adresse même si la réponse à est spécifiée (je ne sais pas laquelle).
Vérifiez # 56 et # 58. Ils peuvent être pertinents pour ce que vous voulez faire https://code.google.com/p/google-apps-script-issues/issues/detail?id=172