0

重複の可能性:
ターゲット マシンがアクティブに拒否したため、接続できませんでしたか?

Asp.net でメールを送信中に重大な問題に直面しました。これは、メールを送信するための私のコードです

MailMessage mm = new MailMessage();

        SmtpClient smtp = new SmtpClient();

        mm.From = new MailAddress(txtfrom.Text);

        mm.To.Add(new MailAddress(txtto.Text));



        mm.Subject = txtsubject.Text;

        mm.Body = txtmessage.Text;

        mm.IsBodyHtml = true;

        smtp.Host = "smtp.gmail.com"; //You can add this in the webconfig

        smtp.EnableSsl = true;

        System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();

        NetworkCred.UserName = "mymail@gmail.com";

        NetworkCred.Password = "my password";
        smtp.UseDefaultCredentials = true;

        smtp.Credentials = NetworkCred;

        smtp.Port = 587; //this is Gmail port for e-mail

        smtp.Send(mm);//send an e-mail

問題は、送信ボタンをクリックすると次のエラーが表示されることです

「ターゲットマシンがアクティブに拒否したため、接続できませんでした 173.194.79.109:587」

解決策を教えてください..

4

5 に答える 5

0

これは私がメールを送信するためにチェックした機能です...そしてそれは正常に動作しています。

`

    private static bool testsendemail(MailMessage messageBody)
    {

        try

        {

        MailMessage message1 = new MailMessage();

        SmtpClient smtpClient = new SmtpClient();

        string msg = string.Empty;

        MailAddress fromAddress = new MailAddress("FromMail@Test.com");
        message1.From = fromAddress;
        message1.To.Add("ToMail@Test1.com");
        message1.Subject = "This is Test mail";
        message1.IsBodyHtml = true;
        message1.Body ="You can write your body here"+messageBody;
        smtpClient.Host = "smtp.mail.yahoo.com"; // We use yahoo as our smtp client
        smtpClient.Port = 587;
        smtpClient.EnableSsl = false;
        smtpClient.UseDefaultCredentials = true;
        smtpClient.Credentials = new  System.Net.NetworkCredential("SenderMail@yahoo.com", "YourPassword");

        smtpClient.Send(message1);
    }
    catch
    {
        return false;
    }
    return true;

}`           

ありがとうございました。

于 2012-05-15T10:41:28.943 に答える
0
    protected void SendMail_Click(object sender, EventArgs e)
    {
        var fromAddress = new MailAddress(fromid.Text, fromname.Text);
        var toAddress = new MailAddress(toid.Text, toname.Text);
        string fromPassword = pswd.Text;
        string subject = subjectbox.Text;
         string body = bodybox.Text;

        var smtp = new SmtpClient
        {
            Host = "smtp.gmail.com",
            Port = 587,
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            Credentials = new NetworkCredential(fromAddress.Address, fromPassword),
            Timeout = 20000
        };
        using (var message = new MailMessage(fromAddress, toAddress)
        {
            Subject = subject,
            Body = body,
            IsBodyHtml = false

        })
        {
            smtp.Send(message);
        }

    }
于 2012-05-15T10:18:08.680 に答える
0

これが私の使い方です。

SmtpClient gglClient = new SmtpClient("173.194.67.108", 587);
gglClient.UseDefaultCredentials = false;
gglClient.DeliveryMethod = SmtpDeliveryMethod.Network;
gglClient.Credentials = new NetworkCredential("username@gmail.com", "password");
gglClient.EnableSsl = true;

MailMessage msg = new MailMessage("", email);
msg.Subject = "";
msg.Body = @" ";

msg.IsBodyHtml = false;
msg.BodyEncoding = UTF8Encoding.UTF8;

gglClient.Timeout = 8000;
ServicePointManager.ServerCertificateValidationCallback =
    delegate(object s, X509Certificate certificate, X509Chain chain,
        SslPolicyErrors sslPolicyErrors) { return true; };

gglClient.Send(msg);
于 2012-05-15T09:55:32.223 に答える
0

プロパティをfalseに設定する必要がありUseDefaultCredentialsます。

smtp.UseDefaultCredentials = false;
于 2012-05-15T09:43:47.800 に答える
0

通常、このエラー メッセージは、ファイアウォールが接続をブロックしていることを意味します。マシン名を使用する代わりに、"173.194.79.109:587"" " を使用してみてくださいlocalhost

于 2012-05-15T09:44:01.660 に答える