アプリの1つにサポートサービスを追加しようとしていたので、ユーザーのフィードバックを個人のメールに送信するメソッドを作成することにしました。MSDNによると:
UseDefaultCredentialsプロパティがfalseに設定されていて、Credentialsプロパティが設定されていない場合、メールは匿名でサーバーに送信されます。
しかし、UseDefaultCredentialsをfalseに設定すると、電子メールに何も配信されません。
MailMessage mail = new MailMessage("[email protected]", "[email protected]");
SmtpClient client = new SmtpClient();
client.Port = 25;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Host = "smtp.google.com";
mail.Subject = "this is a test email.";
mail.Body = "this is my test email body";
client.Send(mail)
私の質問は、この問題はGmailに関連しているのか、それとも私がこれを行っている方法に何か問題があるのかということです。
詳細がなければ、問題が何であるかを確認するのは困難です。UseDefaultCredentialsをtrueに設定すると機能しますか?
SMTPで注意すべき標準的な問題:
ほとんどのISPはポート25をブロックしているため、ローカルサーバーを除いて、または特別な場合を除いて、非SSL / TLSSMTPを使用することはできません。
GmailのSMTPは、私が知る限り、メール送信のために認証されたログインのみを受け入れます。
私の経験では、認証されたGmailアカウント(パスワード付き)とTLS(暗号化)接続(ポート25ではない)の使用はほとんどどこからでも正常に機能しますが、ユーザーのGmail資格情報がないため、アプリケーションにはおそらく望ましくありません。
これがすべて面倒な場合に検討する可能性のある標準的な代替アプローチは、一般的な電子メールではなく、独自のWebサイトで独自のフォームベースのフィードバック送信プロセスをサポートすることです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加