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
错在哪里?(在asp.net中发送电子邮件)_Asp.net_Email_Dns_Smtpclient - Fatal编程技术网

错在哪里?(在asp.net中发送电子邮件)

错在哪里?(在asp.net中发送电子邮件),asp.net,email,dns,smtpclient,Asp.net,Email,Dns,Smtpclient,我使用以下代码在asp.net中发送电子邮件: 使用System.Net.Mail public string SendEmail() { SmtpClient obj = new SmtpClient(); MailMessage Mailmsg = new MailMessage(); Mailmsg.To.Clear(); Recievers = new MailAddressCollection(); Recievers.Add(txtToAdd

我使用以下代码在asp.net中发送电子邮件:

使用System.Net.Mail

public string SendEmail()
{
    SmtpClient obj = new SmtpClient();
    MailMessage Mailmsg = new MailMessage();
    Mailmsg.To.Clear();

    Recievers = new MailAddressCollection();
    Recievers.Add(txtToAddress.Text);
    SenderName = "Info";
    SenderEmail = txtFromAddress.Text;
    Subject = "subj";
    Body = "body";
    UseBcc = false;

    if (UseBcc)
    {
        foreach (MailAddress RecieverItem in Recievers)
        {
            Mailmsg.Bcc.Add(RecieverItem);
        }
    }
    else
    {
        foreach (MailAddress RecieverItem in Recievers)
        {
            Mailmsg.To.Add(RecieverItem);
        }
    }

    Mailmsg.From = new MailAddress(SenderEmail, SenderName, System.Text.Encoding.UTF8);
    Mailmsg.Subject = Subject;
    Mailmsg.SubjectEncoding = Encoding.UTF8;
    Mailmsg.BodyEncoding = System.Text.Encoding.UTF8;
    Mailmsg.IsBodyHtml = false;

    obj.Host = mail.domain.com;

    System.Net.NetworkCredential BasicAuthenticationInfo = new System.Net.NetworkCredential("info@domain.com", "password");

    obj.UseDefaultCredentials = false;
    obj.Credentials = BasicAuthenticationInfo;

    Mailmsg.Body = Body;
    Mailmsg.IsBodyHtml = true;
    try
    {
        obj.Send(Mailmsg);
        return "sent";
    }
    catch (Exception ex)
    {
        return ex.ToString();
    }
}
它正确地向我的域中定义的接收者发送电子邮件(如mail@domain.com),但我无法向其他邮件服务器发送电子邮件(如mail@yahoo.com

我的代码有什么问题

(可能与SmtpClient属性有关吗?我已将SmtpClient.host设置为mail.mydomain.com 并使用在我的域中定义的我的一个邮件帐户的用户名和密码)


谢谢

它一定与您的exchange服务器有关。exchange中有一些传输规则,定义了如何与外部世界通信

向外部网络发送电子邮件时,您一定遇到了一些异常

System.Net.Mail.SmtpFailedRecipientException: Mailbox unavailable. The server response was: 5.1.1 User unknown
   at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
如果这是您收到的错误,则表示您的exchange不支持直接向外部网络发送电子邮件。由于我不是MS exchange专家,但我一直在使用网络中配置的exchange服务器,该服务器无法向外部网络发送电子邮件,但我们可以将电子邮件转发给联系人

也许这对你有帮助


另外,我建议您在

上共享此问题,它一定与您的exchange服务器有关。exchange中有一些传输规则,定义了如何与外部世界通信

向外部网络发送电子邮件时,您一定遇到了一些异常

System.Net.Mail.SmtpFailedRecipientException: Mailbox unavailable. The server response was: 5.1.1 User unknown
   at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
如果这是您收到的错误,则表示您的exchange不支持直接向外部网络发送电子邮件。由于我不是MS exchange专家,但我一直在使用网络中配置的exchange服务器,该服务器无法向外部网络发送电子邮件,但我们可以将电子邮件转发给联系人

也许这对你有帮助


此外,我建议您在

上共享此问题,它是否引发任何异常?您是否与SMTP服务器管理员进行了检查(他们是否在SMTP服务器上阻止了您的程序以防止将其发送到外部?)是,异常为:System.Net.Mail.SmtpFailedRecipientException:邮箱不可用。服务器的响应是:System.Net.Mail.SmtpTransport.SendMail(MailAddress发件人、MailAddressCollection收件人、String deliveryNotify、SmtpFailedRecipientException和exception)的System.Net.Mail.SmtpClient.Send(MailMessage message)的默认值为.SendMail()处没有这样的用户。您可以检查属性“FailedRecipient”在异常SmtpFailedRecipientException上。您确定这是正确的收件人地址吗?SmtpFailedRecipientException.FailedRecipient为空@EIMa:确保您收到的发件人电子邮件格式是否正确:txtFromAddress.Text。它是否引发任何异常?您是否与SMTP服务器管理员进行了检查(他们是否在SMTP服务器上阻止了您的程序以防止将其发送到外部?)是,异常为:System.Net.Mail.SmtpFailedRecipientException:邮箱不可用。服务器的响应是:System.Net.Mail.SmtpTransport.SendMail(MailAddress发件人、MailAddressCollection收件人、String deliveryNotify、SmtpFailedRecipientException和exception)的System.Net.Mail.SmtpClient.Send(MailMessage message)的默认值为.SendMail()处没有这样的用户。您可以检查属性“FailedRecipient”在异常SmtpFailedRecipientException上。您确定这是正确的收件人地址吗?SmtpFailedRecipientException.FailedRecipient为空@EIMa:确保您收到的发件人电子邮件格式是否正确:txtFromAddress.Text。是的,我只想说,发送到其他域的电子邮件可能会被您的exchange服务器阻止。请检查我的回答我添加了一些更详细的信息EA,我只想说,发送到其他域的电子邮件可能会被您的exchange服务器阻止..请检查我的回答我添加了一些详细信息