यह मेरा काम है। मैंने क्लॉज का उपयोग करने में क्लाइंट और संदेश दोनों को पहले से ही लपेट लिया है और कोड निरीक्षण चलाने पर अभी भी त्रुटि प्राप्त होती है।कोड निरीक्षण कहता है कि मुझे वस्तु का निपटान करने की आवश्यकता है। कौनसा?
public static void Send(MailItem mail)
{
var sender = Membership.GetUser(mail.CreatedBy);
if (sender == null)
{
return;
}
using (var msg = new MailMessage { From = new MailAddress(ConfigurationManager.AppSettings["EmailSender"], ConfigurationManager.AppSettings["EmailSenderName"]) })
{
foreach (var recipient in mail.MailRecipients)
{
var recipientX = Membership.GetUser(recipient.UserKey);
if (recipientX == null)
{
continue;
}
msg.To.Add(new MailAddress(recipientX.Email, recipientX.UserName));
}
msg.Subject = "[From: " + sender.UserName + "]" + mail.Subject;
msg.Body = mail.Body;
if (HttpContext.Current != null)
{
msg.Body += Environment.NewLine + Environment.NewLine + "To reply via Web click link below:" +
Environment.NewLine;
msg.Body += ConfigurationManager.AppSettings["MailPagePath"] + "?AID=" +
ContextManager.CurrentAccount.AccountId + "&RUN=" + sender.UserName;
}
try
{
using (var emailClient = new SmtpClient())
{
emailClient.Send(msg);
}
}
catch (Exception ex)
{
Logger.LogException(ex);
}
}
}
यह मैं चेतावनी है:: त्रुटि अंक पहली पंक्ति का उपयोग करने के
चेतावनी 1 CA2000: Microsoft.Reliability: विधि 'Email.Send (MailItem)' में, वस्तु ' <> g_ initLocal0 'को सभी अपवाद पथों के साथ का निपटारा नहीं किया गया है। कॉल करें System.IDisposable। ऑब्जेक्ट '<> जी _initLocal0' पर सभी से पहले संदर्भ दायरे से बाहर हैं। C: \ CodeWorkspace \ कोड \ उपयोगिता \ Email.cs 41
ठीक है आपके कोड में लाइन 41 पर क्या है? – BrokenGlass
@ ब्रोकनग्लस: उसके कोड में लाइन 41 पर * क्या * है? – Mehrdad
@Mehrdad: इस पर विचार करना असंभव है फ़ाइल के भीतर कोड का केवल एक हिस्सा है। – BrokenGlass