2012-03-30 39 views
2

我有一個基於用戶輸入發送電子郵件的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 
+2

你可以張貼一些示例代碼? – Tim 2012-03-30 21:40:06

+0

請參閱編輯 – user897052 2012-04-03 17:12:50

回答

1

既然問題涉及用戶,它可能與該用戶的設置。

登錄爲用戶和打開Outlook

選擇:文件 - 倒在參考「消息格式」

可能「轉換爲純文本格式選擇>郵件

滾動 - >選項「更改爲‘轉換爲HTML格式’

+0

感謝您的答覆/提示,但是,該設置隻影響在Outlook中的用戶發送電子郵件,而不是通過電子郵件我的服務代碼發送(使用我們的SMTP服務器)。如果我不清楚,道歉。 – user897052 2012-04-03 15:18:57

+0

這可能是設置保存在服務器上的用戶配置文件,並因此影響到該用戶帳戶發送的郵件。檢查該用戶的設置並與用戶進行比較。 – 2012-04-03 15:36:35

+0

oh.ok.疑難雜症。謝謝,我會檢查出來 – user897052 2012-04-03 17:13:28