0

質問をやり直す

このコードは機能しません

エラーは次のとおりです。 The remote certificate is invalid according to the validation procedure.

var client = new SmtpClient("smtp.domain.com.br", 25000)
{
    Credentials = new NetworkCredential("username", "password"),
    EnableSsl = true
};
client.Send("emailfrom@domain.com.br", "emailto@gmail.com", "test", "testbody");
// I also tested like this
// client.Send("emailfrom@domain.com.br", "emailto@domain.com", "test", "testbody");

しかし、このコードは機能します

var client = new SmtpClient("smtp.gmail.com", 587)
{
    Credentials = new NetworkCredential("username", "password"),
    EnableSsl = true
};
client.Send("emailfrom@domain.com.br", "emailto@gmail.com", "test", "testbody");

Outlookで最初のコードデータをテストしましたが、同じドメインからメールを送信しようとしても機能します。

エラーはSMTP構成にあると思いますが、これを解決する方法がわかりません。何か助けはありますか?

4

4 に答える 4

1

どのSMTPサーバーを使用していますか?Gmail SMTPサーバーを使用している場合は、Gmailを介して送信するために必要なポート番号587を使用する必要があります

于 2012-09-13T18:07:15.137 に答える
0

ポート465を試しましたか。この記事を確認できるかもしれません。

http://support.google.com/mail/bin/answer.py?hl=en&answer=13287

于 2012-09-13T18:29:22.390 に答える
0

以下の回答に基づいて、.configファイルから値を渡すことができますが、必要に応じて、最初にハードコードされた値を使用してこれをテストし、次に作業バージョンをパラメータ値を使用するように変換する必要があります。

using System.Net;
using System.Net.Mail;

var fromAddress = new MailAddress("from@gmail.com", "From Name");
var toAddress = new MailAddress("to@example.com", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";

var _smtpClient = new SmtpClient
           {
               Host = "smtp.gmail.com",
               Port = 587,
               EnableSsl = true,
               DeliveryMethod = SmtpDeliveryMethod.Network,
               UseDefaultCredentials = false,
               Credentials = 
                  new NetworkCredential(fromAddress.Address, fromPassword)
           };
using (var message = new MailMessage(fromAddress, toAddress)
                     {
                         Subject = subject,
                         Body = body
                     })
{
    _smtpClient.Send(message);
}
于 2012-09-13T18:21:34.970 に答える
0

Outlookで生成されたデジタル証明書を使用してこれを解決し、アプリケーションが実行されているサーバーに配置します。

私の質問のコードと証明書を使って、私はついにこれを機能させました。

これを行う方法に関するリンクは次のとおりです。独自のデジタル証明書を作成する

于 2012-09-26T17:31:38.780 に答える