xem xét mã nàyPhân tích mã phàn nàn tôi không vứt bỏ đồ vật. Có gì sai ở đây?
private MailMessage GetMailMessageFromMailItem(Data.SystemX.MailItem mailItem)
{
var msg = new MailMessage();
foreach (var recipient in mailItem.MailRecipients)
{
var recipientX = Membership.GetUser(recipient.UserKey);
if (recipientX == null)
{
continue;
}
msg.To.Add(new MailAddress(recipientX.Email, recipientX.UserName));
}
msg.From = new MailAddress(ConfigurationManager.AppSettings["EmailSender"],
ConfigurationManager.AppSettings["EmailSenderName"]);
msg.Subject = sender.UserName;
if (!string.IsNullOrEmpty(alias)) msg.Subject += "(" + alias + ")";
msg.Subject += " " + mailItem.Subject;
msg.Body = mailItem.Body;
msg.Body += Environment.NewLine + Environment.NewLine + "To reply via Web click link below:" + Environment.NewLine;
msg.Body += ConfigurationManager.AppSettings["MailPagePath"] + "?AID=" + ContextManager.AccountId + "&RUN=" + sender.UserName;
if (mailItem.MailAttachments != null)
{
foreach (var attachment in mailItem.MailAttachments)
{
msg.Attachments.Add(new Attachment(new MemoryStream(attachment.Data), attachment.Name));
}
}
return msg;
}
Tôi chỉ dùng loại cơ sở dữ liệu của tôi và chuyển sang MailMessage. Nó nhận được gửi trong một chức năng khác.
Phân tích mã cho tôi biết tôi không xử lý "msg" đúng. Nhưng nếu tôi làm điều đó ở đây - tôi có ngoại lệ khi tôi đang cố gửi nó.
Ngoài ra, nó than phiền về việc không xử lý MemoryStream đây:
msg.Attachments.Add (Đính kèm mới (MemoryStream mới (attachment.Data), attachment.Name));
Tôi không biết cách xử lý đúng cách. Tôi đã thử những thứ khác nhau nhưng đã nhận được ngoại lệ khi gửi thư cho biết "Luồng đang đóng"
Làm cách nào để ngăn chặn cảnh báo? – katit
@katit: Vượt qua - Tôi không sử dụng phân tích mã. Tôi chắc chắn có rất nhiều hướng dẫn trực tuyến mặc dù. –
@Downvoter: Chăm sóc bình luận? –