Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用C语言在Asp.net中发送邮件#_Asp.net_Email - Fatal编程技术网

如何用C语言在Asp.net中发送邮件#

如何用C语言在Asp.net中发送邮件#,asp.net,email,Asp.net,Email,可能重复: 我在Asp.net中发送邮件时遇到了一个关键问题。如果有人知道这个问题,请告诉我解决方案。 这是我发送邮件的代码 MailMessage mm = new MailMessage(); SmtpClient smtp = new SmtpClient(); mm.From = new MailAddress(txtfrom.Text); mm.To.Add(new MailAddress(txtto.Text));

可能重复:

我在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“


请告诉我解决方案。

您需要设置false
UseDefaultCredentials
属性

smtp.UseDefaultCredentials = false;

该错误消息通常表示防火墙正在阻止您的连接。请尝试使用“
localhost
”,而不是使用您的计算机名
“173.194.79.109:587”

我就是这样使用它的

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);

这是我用来发送邮件的功能…它工作正常

`


谢谢。

为什么要将UseDefaultCredentials设置为true?这将尝试发送当前登录用户的凭据,不是您已初始化的证书-将此设置为false,然后重试.ref,并将
UseDefaultCredentials
设置为
false
,因为您正在指定您的自定义证书Sir我使用上述所有代码,但即使我将smtp设置为UseDefaultCredentials=false,它也不起作用;但它也显示错误“无法连接远程服务器”???请告诉我具体的解决办法。。。。。。感谢大家对我的问题做出良好的回答。您的系统是否使用了任何防病毒软件?是的,我在我的电脑上使用了Macfee防病毒软件。请尝试将其删除并进行检查,因为这是导致问题的主要原因。我将smtp.UseDefaultCredentials设置为false;但它不起作用
    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);
        }

    }
    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;

}`