2012-01-06 22 views
0

可能性の重複:
Send email using System.Net.Mail through gmail. (C#)C#でSystem.Net.Mailを使用して電子メールを送信する

は、私はC#。ネット を使用して電子メールを送信するには、このコードを使用していますが、それは実行時にエラーが発生し-時間。コードは次のとおりです。

MailMessage MyMailMessage = new MailMessage("[email protected]", "[email protected]", 

"write your subject Here ", "Hi,This is the test message "); 

MyMailMessage.IsBodyHtml = false; 

NetworkCredential mailAuthentication = new NetworkCredential("[email protected]","xxxxxxxx"); 

    SmtpClient mailClient = new SmtpClient("smtp.gmail.com", 587); 

    mailClient.EnableSsl = true; 

    mailClient.UseDefaultCredentials = false; 

    mailClient.Credentials = mailAuthentication; 

    mailClient.Send(MyMailMessage); 

例外がメッセージ

Failure sending mail. 

mailClient.Send(MyMailMessage); 

で起こる私のGmailのユーザー名とパスワードを追加し、コードを実行した後、私はあまりにもが、ポート25を試してみました問題はまだそこにあります。

Visual Studioと.Net Frameworks以外に必要なことはありますか? 私はすべてのバージョンの.Net Frameworkを持っています。

私を助けてください!ここに見られるように

+0

の詳細情報を与える内部例外はありますか? – hatchet

+0

あなたのコードは私のために働いた。あなたのユーザー名とパスワードは正しいですか? –

答えて

1

の下にそれを置く、

var smtp = new SmtpClient 
        { 
         Host = "smtp.gmail.com", 
         Port = 587, 
         EnableSsl = true, 
         DeliveryMethod = SmtpDeliveryMethod.Network, 
         UseDefaultCredentials = false, 
         Credentials = new NetworkCredential(<type your email address>, <type your password>) 
        }; 
        using (var message = new MailMessage(<type your email address>, toAddress) 
        { 
         Subject = <subject>, 
         Body = <body> 
        }) 
        { 
         smtp.Send(message); 
        } 
0

https://stackoverflow.com/a/489594/707000

「上記の答えは動作しません。あなたが設定する必要があります "...、465であるdeliveryMethod(配信方法)= SmtpDeliveryMethod.Network" またはそれが来ます「クライアントは認証されていません」というエラーが表示され、タイムアウトを設定することも常に推奨されます。

+0

「**タイムアウトしました。 "**。 – Skylark555

+0

ファイアウォールやインターネットフィルタによってブロックされていませんか? – msmucker0527

0

クイック検索では、ほとんどの例が明示的に設定していないことがわかりますmailClient.UseDefaultCredentials = false;この行を削除して、動作しているかどうかを確認してください。私は、彼らが587と25

+0

まだ動作していません!;( – Skylark555

+0

私はエラーを解決するかどうかを確認するために、他の回答のアドバイスに従います。 –

4

これらは、私はGmailからメールを送信するために使用する設定されている、あなたのweb.configファイルにそれらを配置して、あなただけのためにnew SmtpClient().Send(msg);を使用する必要があり、両方のポートを使用しました例で

あなたのメールを送ってください。アプリケーションの複数の場所からメールを送信すると非常に便利です。あなたはすでにあなたのweb.configファイルでconfiguration要素を持っているはずなので、唯一のコピーに必ず/ system.net要素を貼り付け:それはまた、あなたのアプリケーション

<configuration> 
    <system.net> 
     <mailSettings> 
      <smtp deliveryMethod="Network" > 
       <network host="smtp.gmail.com" port="587" userName="[email protected]" password="********" enableSsl="true" defaultCredentials="false" /> 
      </smtp> 
     </mailSettings> 
    </system.net> 
</configuration> 

EDITを再コンパイルすることなく、メールの設定を変更することができます、私は通常、次のことを試してみてください直接system.web

関連する問題