Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.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
正在尝试使用SMTP类(C#)发送电子邮件_C#_Asp.net_Email_Smtp - Fatal编程技术网

正在尝试使用SMTP类(C#)发送电子邮件

正在尝试使用SMTP类(C#)发送电子邮件,c#,asp.net,email,smtp,C#,Asp.net,Email,Smtp,我正在尝试使用C#SmtpClient类发送电子邮件。“catch”块在尝试“发送”消息后执行。当我查看异常时,InnerException显示“无法连接到远程服务器”,消息显示“发送邮件失败”。状态代码为“一般故障” 我是否缺少某些凭证?我是否需要为SmtpClient或MailMessage的实例设置更多字段 代码如下: private void sendEmail(string recepientEmailAddress) { string subjectEmail =

我正在尝试使用C#SmtpClient类发送电子邮件。“catch”块在尝试“发送”消息后执行。当我查看异常时,InnerException显示“无法连接到远程服务器”,消息显示“发送邮件失败”。状态代码为“一般故障”

我是否缺少某些凭证?我是否需要为SmtpClient或MailMessage的实例设置更多字段

代码如下:

 private void sendEmail(string recepientEmailAddress) {
        string subjectEmail = "Subject Email";
        MailAddress to = new MailAddress("example@email.com");
        MailAddress from = new MailAddress("example@example.com");

        MailMessage message = new MailMessage(from, to);
        message.Subject = subjectEmail;
        message.IsBodyHtml = true;
        message.Body = "Body example";

        try
        {
            SmtpClient sc = new SmtpClient(ConfigurationManager.AppSettings["MailServer"].ToString());
            sc.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
            sc.DeliveryMethod = SmtpDeliveryMethod.Network;
            sc.EnableSsl = true;
            sc.UseDefaultCredentials = true;
            sc.Send(message);
        }
        catch (Exception e)
        {
            Helpers.ErrorLogger.ProcessError(e.Message, e.StackTrace, "RegistrationController", "SendEmail");
        }
    }
添加端口(gmail:587)

正在添加主机(smtp.gmail.com)

如果不起作用,请尝试添加用户名和密码 从

sc.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;

添加端口(gmail:587)

正在添加主机(smtp.gmail.com)

如果不起作用,请尝试添加用户名和密码 从

sc.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;

这段代码应该可以用,我刚刚测试过


这段代码应该可以用,我刚刚测试过。

似乎AppSettings中指定的MailServer无效。缺少用户名和密码,您尝试发送的电子邮件是哪封from@AsafShazar如何将用户和密码附加到我发送的电子邮件?谢谢。似乎
MailServer
spe
AppSettings
中指定的无效。缺少您尝试发送的电子邮件的用户名和密码from@AsafShazar如何将用户和密码附加到我发送的电子邮件?谢谢。感谢您的回复。我发送的“发件人”电子邮件是outlook。“sc.Host=smtp.outlook.com”也是如此改为工作?@tonyleMill你从Outlook发送是什么意思?除非你的网站托管在Outlook.com上,否则不要从Outlook.com发送。@mason我只是想了解为什么主机和端口上有“gmail”。你试图在你的公司发送电子邮件?@tonyleMill无论如何Outlook连接到邮箱服务器/Cas服务器(如果您使用exchange),在gmail中,因为您需要用户和密码的身份验证,因此我添加了用户和密码,如果您在公司中使用邮件(如exchange服务器),您可以做2件事1)使用windows集成,在邮件中使用用户认证2)将NetworkCredential与windows用户的用户名和密码一起使用我最终以另一种方式使其工作,但感谢您的帮助。感谢您的回复。我发送的“发件人”电子邮件是outlook。“sc.Host=smtp.outlook.com”也是如此改为工作?@tonyleMill你从Outlook发送是什么意思?除非你的网站托管在Outlook.com上,否则不要从Outlook.com发送。@mason我只是想了解为什么主机和端口上有“gmail”。你试图在你的公司发送电子邮件?@tonyleMill无论如何Outlook连接到邮箱服务器/Cas服务器(如果您使用exchange),在gmail中,因为您需要用户和密码的身份验证,因此我添加了用户和密码,如果您在公司中使用邮件(如exchange服务器),您可以做2件事1)使用windows集成,在邮件中使用用户认证2)将NetworkCredential与您的windows用户的用户名和密码一起使用我最终以另一种方式使其工作,但感谢您的帮助。
sc.Credentials = new System.Net.NetworkCredential("username","password")
public static bool Send()
    {
        try
        {
            var fromAddress = new MailAddress("xyz@example.com");
            var toAddress = new MailAddress("xyziahd@example.com");
            const string subject = "subjects";
            const string userName = "serverCredentail";
            const string Password = "serverpassword";
            const string body = "Body";
            var smtp = new SmtpClient
            {
                Host = "servernameexample.com",
                Port = 25,
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials = new NetworkCredential(userName, Password)
            };
            using (var message = new MailMessage(fromAddress, toAddress)
            {
                Subject = subject,
                Body = body
            })
            {
                smtp.Send(message);
            }
        }
        catch(Exception ex)
        {
            return false;
        }
        return true;
    }