web-dev-qa-db-fra.com

changer l'adresse de l'expéditeur lors de l'envoi de courrier via gmail en c #

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.

26
ACP

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.

34
dave wanta

Voici la solution:

  1. utilisez les codes ci-dessus pour définir mail.From = new MailAddress (adresse, nom d'affichage)
  2. dans Gmail, accédez à Paramètres de messagerie >> Comptes et importation.
  3. Ajoutez le compte de messagerie que vous utiliserez en tant qu'expéditeur dans "Send Mail As". (cochez comme alias)

Ça marche pour moi

38
philip

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 )

5
Iain Ward

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).

2
Simon_Weaver

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

1
Passant El.Agroudy