Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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_C# 4.0_Sendmail - Fatal编程技术网

在asp.net中发送邮件失败

在asp.net中发送邮件失败,asp.net,c#-4.0,sendmail,Asp.net,C# 4.0,Sendmail,我正在尝试使用以下代码发送异步邮件: #region Method :: Send Email public static void vSendMail(string sEmailAddress, string sSubject = "", string sMsgBody = "", int nUserID = 1, Telerik.Reporting.ReportSource reportSource = null, List<string> ccUsersEma

我正在尝试使用以下代码发送异步邮件:

 #region Method :: Send Email
        public static void vSendMail(string sEmailAddress, string sSubject = "", string sMsgBody = "", int nUserID = 1, Telerik.Reporting.ReportSource reportSource = null, List<string> ccUsersEmails = null)
        {
            try
            {
                string url = ConfigurationManager.AppSettings["URL"];
                string email = ConfigurationManager.AppSettings["Email"];


                sMsgBody = "";// PopulateBody("", "", url.Split('!')[0], sMsgBody);


                BaseClass _baseClass = new BaseClass();
                var FromAddress = new MailAddress(CommonTools.Decrypt(email.Split('!')[0], true, _baseClass.UserID), "Metal Art Work");
                var ToAddress = new MailAddress(sEmailAddress, sEmailAddress);
                string sFromPassword = CommonTools.Decrypt(email.Split('!')[1], true, _baseClass.UserID);
                var smtp = new SmtpClient
                {
                    Host = ConfigurationManager.AppSettings["Host"],
                    Port = int.Parse(ConfigurationManager.AppSettings["Port"]),
                    EnableSsl = true,
                    DeliveryMethod = SmtpDeliveryMethod.Network,
                    //UseDefaultCredentials = false,
                    Credentials = new NetworkCredential(FromAddress.Address, sFromPassword)
                };
                using (var message = new MailMessage(FromAddress, ToAddress)
                {
                    Subject = sSubject,
                    Body = sMsgBody,
                    IsBodyHtml = true
                })
                {
                    //--Cc Emails--\\
                    if (ccUsersEmails != null)
                    {
                       //add  CC
                    }
                    //--Attachment--\\
                    if (reportSource != null)
                    {
                       // Add attach
                    }
                   // smtp.Send(message);
                    SendEmail(message, smtp, true);

                }
            }
            catch (Exception ex)
            {
                vAddToLog(ex, nUserID, ErrorCodes.SendMailError);
                throw new JOVALException(ex);
            }
        }
        private delegate void SendEmailDelegate(System.Net.Mail.MailMessage m);
        private static void SendEmailResponse(IAsyncResult ar)
        {
            try
            {
                SendEmailDelegate sd = (SendEmailDelegate)(ar.AsyncState);

                sd.EndInvoke(ar);
            }
            catch (Exception ex)
            {
                vAddToLog(ex, 0, ErrorCodes.SendMailError);
            }
        }
        public static void SendEmail(System.Net.Mail.MailMessage m, SmtpClient smtpClient, Boolean Async)
        {
            try
            {
            //   string userState = "Test";

                if (Async)
                {
                    SendEmailDelegate sd = new SendEmailDelegate(smtpClient.Send);
                    AsyncCallback cb = new AsyncCallback(SendEmailResponse);
                    sd.BeginInvoke(m, cb, sd);
                }
                else
                {
                    smtpClient.Send(m);
                }
            }
            catch (Exception ex)
            {
                vAddToLog(ex, 0, ErrorCodes.SendMailError);
            }
        }
        #endregion
#区域方法::发送电子邮件
public static void vSendMail(字符串sEmailAddress,字符串ssobject=“”,字符串sMsgBody=“”,int-nUserID=1,Telerik.Reporting.ReportSource ReportSource=null,List-ccUsersEmails=null)
{
尝试
{
字符串url=ConfigurationManager.AppSettings[“url”];
字符串email=ConfigurationManager.AppSettings[“email”];
sMsgBody=“”;//PopulateBody(“,”,url.Split(“!”)[0],sMsgBody);
基类_BaseClass=新基类();
var FromAddress=新邮件地址(CommonTools.Decrypt(email.Split(“!”)[0],true,_baseClass.UserID),“金属艺术品”);
var ToAddress=新邮件地址(sEmailAddress,sEmailAddress);
字符串sFromPassword=CommonTools.Decrypt(email.Split(“!”)[1],true,_baseClass.UserID);
var smtp=新SmtpClient
{
主机=ConfigurationManager.AppSettings[“主机”],
Port=int.Parse(ConfigurationManager.AppSettings[“端口”]),
EnableSsl=true,
DeliveryMethod=SmtpDeliveryMethod.Network,
//UseDefaultCredentials=false,
凭据=新网络凭据(FromAddress.Address,sFromPassword)
};
使用(var message=新邮件消息(FromAddress,ToAddress)
{
Subject=ssobject,
Body=sMsgBody,
IsBodyHtml=true
})
{
//--抄送电子邮件--\\
如果(CCUsersMail!=null)
{
//添加抄送
}
//--附件:--\\
if(reportSource!=null)
{
//附加
}
//smtp.Send(message);
SendEmail(消息、smtp、true);
}
}
捕获(例外情况除外)
{
vAddToLog(例如,nUserID,ErrorCodes.SendMailError);
抛出新的JOVALException(ex);
}
}
私有委托void sendmaildelegate(System.Net.Mail.MailMessage);
专用静态无效SendEmailResponse(IAsyncResult ar)
{
尝试
{
SendEmailDelegate sd=(SendEmailDelegate)(ar.AsyncState);
sd.EndInvoke(ar);
}
捕获(例外情况除外)
{
vAddToLog(例如,0,ErrorCodes.SendMailError);
}
}
公共静态void sendmail(System.Net.Mail.MailMessage,SmtpClient-SmtpClient,Boolean-Async)
{
尝试
{
//字符串userState=“Test”;
如果(异步)
{
SendEmailDelegate sd=新的SendEmailDelegate(smtpClient.Send);
AsyncCallback cb=新的AsyncCallback(SendEmailResponse);
标准偏差。起始偏差(m,cb,标准偏差);
}
其他的
{
smtpClient.Send(m);
}
}
捕获(例外情况除外)
{
vAddToLog(例如,0,ErrorCodes.SendMailError);
}
}
#端区
但我面临以下例外:

发送邮件失败。-->System.ObjectDisposedException:无法访问已处置的对象。
对象名称:“System.Net.Mail.MailMessage

异常非常明显。如果以后打算使用变量,请不要将变量放入
using()
块中。非常感谢。它很好用