我有一個基於用戶輸入發送電子郵件的WCF服務。引起了我的注意,最近,一個特定用戶的電子郵件正在被傳送,沒有任何正文。如果.IsBodyHtml設置爲true,則不會傳輸正文文本;但是,如果.IsBodyHtml設置爲false,則正文具有適當的文本。
然而,它似乎並不一致,因爲它似乎只有當所述用戶的電子郵件地址被設置爲「發件人」地址發生。
技術細節:
我們有一個MS Exchange郵件服務器。我正在編寫一個MailMessage對象,將它傳遞給內置的SMTP類來發送消息。
.IsBodyHtml = true會導致發送一個空的郵件正文,但.IsBodyHtml =假髮送主體內容
爲簡潔起見,代碼已被簡化了一下。儘管如此,原始代碼還是很標準/直接的。 email
指LINQ到SQL類對象
MailMessage message = new MailMessage();
message.From = new MailAddress(email.fromAddress);
message.To.Add(email.toRecipient);
message.Subject = email.emailSubject;
//set email body
message.IsBodyHtml = true;
message.Body = email.emailBody;
Attachment attachmentFile = null;
if (email.hasAttachment == true)
{
//retrieve attachments for emailID
var attachments = from attach in db.EmailAttachments
where attach.emailID == emailID
select attach;
foreach (var attachment in attachments)
{//attach each attachment
string filePath = Path.Combine(UPLOAD_DIRECTORY, emailID.ToString(), attachment.fileName);
attachmentFile = new Attachment(filePath);
message.Attachments.Add(attachmentFile); //set attachment from input path
}
}
SmtpClient client = new SmtpClient(SMTP_SERVER, SMTP_PORT); //set SMTP server name/URL and port
client.Send(message); //try to send the SMTP email
你可以張貼一些示例代碼? – Tim 2012-03-30 21:40:06
請參閱編輯 – user897052 2012-04-03 17:12:50