Visual Studio 2005 で電子メール アプリケーションを作成しようとしています。.NET の System::Net::Mail::Smtp クラスを使用して電子メールを送信していますが、サーバーでSMTPを認証する方法がわかりません (現在、私は smtp.gmail.com を最も試しています)。
これが私のコードです:
SmtpClient^ client = gcnew SmtpClient("smtp.gmail.com");
NetworkCredential^ basicCredential = gcnew NetworkCredential("username@gmail.com", "password");
client->UseDefaultCredentials = false;
client->Credentials = basicCredential;
私を悩ませているのは、SmtpExceptions をスローしないため、サーバーと正常に通信していることです。認証していないだけです。私も設定しようとしました:
client->EnableSsl = true;
しかし、それも機能しません。
これを機能させる方法についてのアイデアはありますか?
編集:間違っていたため、この質問への回答を削除しました。ファイアウォールをオフにしても何もしません。このコードはオンとオフで機能するようです。Gmail に、正当に見えるタイトル/本文を持たないものをダンプする何らかのスパム機能があるかどうか知っている人はいますか? または、このコードが 10 回の試行に 1 回機能するその他の理由は??
2番目の編集:これは私のMailMessageがどのように見えるかです:
MailAddress^ from = gcnew MailAddress(fromAddr, fromName, System::Text::Encoding::UTF8);
MailAddress^ to = gcnew MailAddress((String^) toAddr[0]);
MailMessage^ message = gcnew MailMessage(from, to);
MailAddress^ cc = gcnew MailAddress(ccAddr);
message->CC->Add(cc);
MailAddress^ bcc = gcnew MailAddress(bccAddr);
message->Bcc->Add(bcc);
message->Body = body;
message->BodyEncoding = System::Text::Encoding::UTF8;
message->Subject = sub;
message->SubjectEncoding = System::Text::Encoding::UTF8;
message->Attachments->Add(attachment);
これは今ではより一貫して動作するように見えますが、コードは何も変更していません.実際の SMTP サーバーと関係があるのでしょうか?