Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/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# 为什么即使路径正常也不发送电子邮件_C#_Asp.net Mvc_Mail Sender - Fatal编程技术网

C# 为什么即使路径正常也不发送电子邮件

C# 为什么即使路径正常也不发送电子邮件,c#,asp.net-mvc,mail-sender,C#,Asp.net Mvc,Mail Sender,这是一段生成邮件的代码,在我没有将路径作为参数附加之前一直有效。问题是,如果我附加路径,它不会抛出任何错误。没有日志。只是页面开始没有响应,调试器甚至没有跳转到下一行。 任何帮助都会帮助我理解我的错误。谢谢 public ActionResult Mailsending(string list) { try { string strIdeas = string.Empty; string Certpath

这是一段生成邮件的代码,在我没有将路径作为参数附加之前一直有效。问题是,如果我附加路径,它不会抛出任何错误。没有日志。只是页面开始没有响应,调试器甚至没有跳转到下一行。 任何帮助都会帮助我理解我的错误。谢谢

public ActionResult Mailsending(string list)
      {
        try
        {
            string strIdeas = string.Empty;
            string Certpath =  System.Configuration.ConfigurationManager.AppSettings["UploadPath"];
            List<int> list = new List<int>();
            List<string> pramAttachment = new List<string>();              
            pramAttachment.Add(Server.MapPath(Certpath) + "MyPdf.pdf"); ///Path of the generated pdf.
            Submitidlist = new CommonBL().GetSubmiidListForGenerateMail();

            new CommonBL().UpdateIsGenerateStatus(ideaidlist, UserID);

            foreach (var item in ideaidlist)
            {
                strIdeas = strIdeas + item.ToString() + ",";
            }
            GenerateMyPDF(list); //Here pdf is generating

            string path = GenerateMail(strIdeas.TrimEnd(','));

            if (path != string.Empty)
            {
                new CommonBL().AddGenerateImagePath(path, UserId);
                new MailSender().SendMail((int)eMailType.GenerateMail, null, pramAttachment); // here path is added as parameter,and after this debugger not jump out of this scope.

            }               
            return Json("Mail generated Successfully."); ///no message showing

        }
        catch (Exception ex)
        {
            return Json("Error");
        }
    }
编辑: 公共类邮件发件人:IDisposable { public bool SendMailshort mailId,List>参数,List attachmentsPath=null;
}可能仍保留对生成的PDF的锁定,因此MailSender无法访问该PDF,因为存在该独占锁定。你能用以前生成的文件发送电子邮件吗?

添加一点显然也是这个问题的答案,就是: 在调试了整个代码之后,我发现我的smtp服务器不允许向我发送邮件,所以即使上面的代码是正确的,它也会显示处理过程。 所以,如果有人使用上述代码,就可以了


更新:在从控制面板配置我的邮件服务后,现在可以正常工作了。因此,如果有人想从中获得参考,可以继续。代码很好。

你能在调试器中找到Server.MapPathCertpath+MyPdf.pdf的结果吗?我相信您必须用斜杠将两者分开\Hi Martin,调试器显示以下结果:C:\xyz\abcTest\Dev\PL\Documents\MyPdf.pdf,Count=1。您能确认哪行代码正在中断或变得无响应吗?Martin:new mailssender.SendMailinteMailType.GenerateMail,null,pramAttachment;SendMail是您创建的方法吗?如果是这样的话,你能在问题中也包括这方面的代码吗?我不这么认为,因为我已经在给它附加图像了,这很好。