[解決済み】C#でGmailのSMTPサーバーを経由してメールを送信する場合
質問
なぜか、受理された回答も他の回答も、"には効きません。 .NETでGmailを使ってメールを送信する "です。なぜ動作しないのでしょうか?
UPDATE: 他の質問にあるすべての回答(受け入れられたもの、そうでないもの)を試しましたが、どれもうまくいきません。
そうでなければ、Googleが何かを変更した可能性があります(以前にもありました)。
を使用したコードを試すと
SmtpDeliveryMethod.Network
で、Send(message)ですぐにSmtpExceptionが発生します。そのメッセージは
SMTPサーバーは安全な接続を要求しているか、クライアントが認証されていません。
サーバーからの応答は
5.5.1 認証が必要です。詳しくはこちら" <-- マジでそこで終わってる。
UPDATE
これはずいぶん前に質問したことで、その回答は、私がさまざまなプロジェクトで何度も何度も使ってきたコードです。
この投稿や他のEmailSenderプロジェクトにあるアイデアの一部を取り入れて CodeplexのEmailSenderプロジェクト . テストしやすいように設計されており、GoDaddyやGmailなど、私のお気に入りのSMTPサービスをサポートしています。
解決するには?
CVertex、あなたのコードを必ず見直して、それで何もわからなければ、投稿してください。私はちょうど私が働いていたテストASP.NETサイトでこれを有効にしていました、そしてそれは動作します。
実は、ある時点で私のコードに問題が発生したんです。コンソールプログラム上でよりシンプルなバージョンにしてみて、それが動作しているのを確認するまで気づきませんでした(あなたが心配していたようなGmail側の変化はありません)。以下のコードは、あなたが参照したサンプルと同じように動作します。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Mail;
using System.Net;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("[email protected]", "mypwd"),
EnableSsl = true
};
client.Send("[email protected]", "[email protected]", "test", "testbody");
Console.WriteLine("Sent");
Console.ReadLine();
}
}
}
また、web.configの組み合わせで動作させました。
http://msdn.microsoft.com/en-us/library/w355a94k.aspx
とコード(一致するものがないため
EnableSsl
を設定ファイルに追加してください。
2021年更新
デフォルトでは、gmail の設定ページ(google.com/settings/security/lesssecureapps)で、「安全性の低いアプリ」(quot; less secure apps)へのアクセスを有効にする必要があります。これは、「サーバーの応答は...」という例外が発生する場合に必要です。5.5.1 認証が必要です。- Ravendarkskyに感謝します。
関連
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み】ここで「要求URIに一致するHTTPリソースが見つかりませんでした」となるのはなぜですか?
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] .NETでGmailを使ったメール送信
-
[解決済み] PHP ページから GMail SMTP サーバを使用してメールを送信する
-
[解決済み】Pythonを使ってGmailをプロバイダにしたメールを送信するには?
-
[解決済み】Gmailエラー :SMTPサーバーが安全な接続を要求しているか、クライアントが認証されていません。というサーバーの応答がありました。5.5.1 認証が必要です
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】"The ConnectionString property has not been initialized "を修正する方法
-
[解決済み】トランスポート接続からデータを読み取れない:既存の接続は、リモートホストによって強制的に閉じられました。
-
[解決済み] [Solved] 不正な文字列値: '\xEFxBFxBD' for column
-
[解決済み】C#のequal to演算子でtextとvarcharのデータ型は互換性がない
-
[解決済み] 2つのリストを結合する
-
[解決済み] [Solved] .NETでスレッドの終了を待つには?
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である