我有一个基于用户输入发送电子邮件的WCF服务。我注意到,最近,特定用户的电子邮件在没有任何正文的情况下发送。如果.IsBodyHtml设置为true,则不传输正文;但是,如果.IsBodyHtml设置为false,则正文具有相应的文本。
但是,它似乎并不一致,因为它似乎只有在所述用户的电子邮件地址被设置为“发件人”地址时才会出现。
技术细节:
我们有一个MS Exchange邮件服务器。我正在编写一个MailMessage对象,将其传递给内置的SMTP类来发送消息。
为了简洁/清晰,代码已经简化了一点。尽管如此,原始代码非常标准/直接。 email
指的是LINQ-to-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
答案 0 :(得分:1)
由于问题与用户有关,因此可能与此用户的设置有关。
以该用户身份登录并打开outlook
选择:文件 - >选项 - >邮件
向下滚动到“邮件格式”部分
可能“选择转换为PlainText格式”将其更改为“转换为HTML格式”