C#でGmailを介してメールを送信するときに送信者アドレスを変更する
-
28-09-2019 - |
質問
次のコードを使用して、Gmailアカウントを使用してWebアプリケーションからメールを送信しました。私の質問は、送信者アドレスを元の送信者(Gmail)アドレス以外の別のアドレスに変更できますか?私のコードは次のとおりです。
System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
System.Net.NetworkCredential cred = new System.Net.NetworkCredential("sample@gmail.com", "*******");
私がいつもメールを受け取るので、私がすることは何でも役に立たない sample@gmail.com
. 。変更することは可能ですか?
私はに変わりました mail.From = new System.Net.Mail.MailAddress("sample@yahoo.com");
しかし、私はfromアドレスとともにメールを受け取りました sample@gmail.com
新しい「From」アドレスからではありません。 Gmail SMTPは、元の資格情報でFROMアドレスを上書きすると思います。
解決
Gmailでは、Gmailアカウントとは異なるものに変更することはできません。
あなたが何を使っているのかは関係ありません、彼らはそれを中継する前にそれを過剰に書きます。これにより、スパム/スプーフィングが防止されます。
他のヒント
これが解決策です:
- 上記のコードを使用してmail.from = new MailAddress(アドレス、表示名)を設定します
- Gmailで、メール設定>>アカウントとインポートに移動します。
- 「メールを送信する」で送信者として使用するメールアカウントを追加します。 (エイリアスとしてティック)
これは私のために働きます
はい、使用してください から のプロパティ MailMessage
例えば。
mail.From = "newemail@email.com";
編集: :また、C#のGmailを介してメールを送信する方法の詳細については、この投稿を参照してください
編集: これは一般的にメールで機能しますが、Googleが送信前に上書きするとGmailでは機能しないようです(@dave Wantaの回答を参照)
@Philipが提案したように、限られた数の送信者がいる場合は、できることができます。たとえば、持っているかもしれません customerservice@example.com
, simon@example.com
と philip@example.com
あるいは alias@example.com
. 。彼らが実際に承認された送信者である限り gmail.com
あなたが彼らから送ることができるウェブサイト。
任意のユーザー(ユーザーが電子メールを入力するWebサイト上のカスタマーサービスフォームなど、直接メールを送信したくない)から送信することを期待している場合、これは次のとおりです。
msg.ReplyToList.Add(new System.Net.Mail.MailAddress(email, friendlyName));
あなたが制御された環境にいる場合、これはうまく機能しますが、返信が指定されている場合でも、いくつかの電子メールクライアントが住所に送信されるのを見てきました(私はわかりません)。
#56と#58を確認してください。彼らはあなたがやりたいことに関連しているかもしれませんhttps://code.google.com/p/google-apps-script-issues/issues/detail?id=172