使用本地SMTP提取目录时出错

时间:2014-05-01 09:43:14

标签: 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();
                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;
            }

        }

我的Blog解决方案中的BlogServices项目中的EmailHelper.cs。此外,在同一解决方案中还有一个博客项目。我已将Blog\Blog\Email中的pickUpFolder替换为Blog\EmailBlog\BlogServices\Email,但我仍然有错误,只有绝对目录可用于取件目录。其中是我的错?提前谢谢。

1 个答案:

答案 0 :(得分:2)

将此添加到项目的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;,但我怀疑如果您走这条路线,您还会遇到其他问题。