Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.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# 使用本地SMTP分拣目录时出错_C#_Email_Smtpclient - Fatal编程技术网

C# 使用本地SMTP分拣目录时出错

C# 使用本地SMTP分拣目录时出错,c#,email,smtpclient,C#,Email,Smtpclient,我正在使用以下代码配置SMTPClient以使用本地目录: EmailHelper.cs public bool SendMail(string from, string to, string cc, string subject, string body, bool isBodyHtml) { try { var smtpClient = new SmtpClient();

我正在使用以下代码配置SMTPClient以使用本地目录:

EmailHelper.cs

  public bool SendMail(string from, string to, string cc, string subject, string body, bool isBodyHtml)
        {
            try
            {
                var smtpClient = new SmtpClient();
                string pickUpFolder = @"C:\Users\kerem\Documents\Visual Studio 2012\Projects\Blog\Blog\Email";
                smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
                Configuration configurationFile = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath);
                MailSettingsSectionGroup mailSettings = configurationFile.GetSectionGroup("system.net/mailSettings") as MailSettingsSectionGroup;
                if (mailSettings != null)
                {
                    pickUpFolder = mailSettings.Smtp.SpecifiedPickupDirectory.PickupDirectoryLocation;
                    smtpClient.PickupDirectoryLocation = pickUpFolder;
                }


                System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage();
                mailMessage.From = new MailAddress(from);
                mailMessage.To.Add(new MailAddress(to));
                if (cc != "")
                    mailMessage.CC.Add(new MailAddress(cc));
                mailMessage.Subject = subject;
                mailMessage.Body = body;
                mailMessage.IsBodyHtml = true;

                smtpClient.Send(mailMessage);
                return true;

            }
            catch (Exception err)
            {
                return false;
            }

        }

我的博客解决方案中的BlogServices项目中的EmailHelper.cs。同样的解决方案中还有一个博客项目。我已经用
Blog\Email
Blog\BlogServices\Email
替换了
pickUpFolder
中的
Blog\Blog\Email
,但我仍然有一个错误,即皮卡目录只允许绝对目录。我的错在哪里?提前感谢。

将此添加到项目的web.config

<system.net>
  <mailSettings>
    <smtp deliveryMethod="SpecifiedPickupDirectory">
      <specifiedPickupDirectory pickupDirectoryLocation="C:\Users\kerem\Documents\Visual Studio 2012\Projects\Blog\Blog\Email\"/>
    </smtp>
  </mailSettings>
</system.net>


或者,尝试删除此行:
pickUpFolder=mailSettings.Smtp.SpecifiedPickupDirectory.PickupDirectoryLocation
,但我怀疑如果你这样做,你会有其他问题。

你能发布你的web.config的
system.net/mailSettings
部分吗?这是一个节省程序。它解决了我的问题。另外,不要将“s”和“s”放在“mailSettings”中,否则它将不起作用。很好的解决方案这解决了为开发环境或测试环境设置真正smtp服务器的需要