web-dev-qa-db-ja.com

C#でGmail経由でメールを送信するときに送信者アドレスを変更する

次のコードを使用して、Gmailアカウントを使用するWebアプリケーションからメールを送信しました。私の質問は、送信者アドレスを元の送信者(gmail)アドレス以外の別のアドレスに変更できるかどうかです。私のコードは次のとおりです:

_System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
System.Net.NetworkCredential cred = new System.Net.NetworkCredential("[email protected]", "*******");
_

いつも_[email protected]_からメールを受け取るので、何をしても役に立たない。変更は可能ですか?

mail.From = new System.Net.Mail.MailAddress("[email protected]");に変更しましたが、新しい「From」アドレスからではなく、fromアドレス_[email protected]_のメールを受信しました。 gmail smtpは、fromアドレスを元の認証情報で上書きすると思います。

26
ACP

Gmailでは、FROMをGmailアカウントとは異なるものに変更することはできません。

リレーする前に、何を使用してもかまいません。上書きされます。これにより、スパム/なりすましが防止されます。

34
dave wanta

これが解決策です:

  1. 上記のコードを使用してメールを設定します。From= new MailAddress(address、display name)
  2. gmailで、[メール設定] >> [アカウントとインポート]に移動します。
  3. [名前を付けて送信]で送信者として使用するメールアカウントを追加します。 (エイリアスとしてチェック)

これは私のために働く

38
philip

はい MailMessageFrom プロパティを使用するだけです

例えば。

mail.From = "[email protected]";

[〜#〜] edit [〜#〜]:また、C#でGmailを介してメールを送信する方法の詳細については、この投稿を参照してください

Gmailを介して.NETでメールを送信

EDIT:これはメールでは一般的に機能しますが、Googleが送信前に上書きするため、Gmailでは機能しないようです(@Dave wantaの回答を参照) )

5
Iain Ward

送信者の数が限られている場合は、@ philipの提案どおりに実行できます。たとえば、[email protected][email protected]および[email protected]、さらには[email protected]が存在する場合があります。彼らが実際のgmail.com Webサイトで承認されている送信者である限り、それらから送信できます。

Gmail.com:別のアドレスからメールを送信する

任意のユーザー(ユーザーがメールを入力し、直接メールを送信したくないWebサイトのカスタマーサービスフォームなど)から送信することを期待している場合、できることは次のとおりです。

        msg.ReplyToList.Add(new System.Net.Mail.MailAddress(email, friendlyName));

制御された環境では問題なく動作しますが、返信先が指定されている場合でも(一部はわかりません)、一部の電子メールクライアントが送信元アドレスに送信するのを見たことがあることに注意してください。

2
Simon_Weaver

#56と#58を確認してください。それらはあなたがやりたいことに関連しているかもしれません https://code.google.com/p/google-apps-script-issues/issues/detail?id=172

1