我想通过Mail
和Outlook
发送C#
,但我的Attachments
展示位置有问题。我有以下代码:
if (strBody.StartsWith(@"{\rtf"))
{
mailItem.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatRichText;
mailItem.RTFBody = Encoding.UTF8.GetBytes(strBody);
mailItem.Attachments.Add(strAttachment, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, int.MaxValue, null);
}
else
{
mailItem.Body = strBody;
mailItem.Attachments.Add(strAttachment, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, 1, null);
}
我的strBody具有以下价值:
{\ rtf1 \ ansi \ ansicpg1252 \ deff0 \ deflang1031 {\ fonttbl {\ f0 \ fnil \ fcharset0 Arial;}} {\ colortbl; \ red255 \ green0 \ blue128; \ red0 \ green128 \ blue255;} \ viewkind4 \ uc1 \ pard \ fs20 Sehr geehrte \ cf1 Damen \ cf0 und \ cf2 Herren \ cf0,\ par \看齐 小时候我是AB \ fs20 \ par }
但我的Mail
看起来像这样:
现在我的问题是,
Attachments
可以显示为额外的行,就像邮件不是RTF格式一样吗?Attachments
显示在最后?答案 0 :(得分:1)
嗯,你做的一切都是正确的。每个值> 1将附件放在邮件的末尾。在“hier ihre AB”之后放置它。看起来很傻但很好...... 作为一个小解决方法,我也使用它,放置一些新的线条。尽可能将附件放在最后一句话之下。
或者您将邮件编写为HTML类型。减少问题。
编辑:
如您所见,该文件位于邮件的末尾。
编辑II:
以下是将附件行中的附件作为HTML发送电子邮件的方法示例:
static void Main(string[] args)
{
Outlook.Application tmpOutlookApp = new Outlook.Application();
Outlook.MailItem tmpMessage = (Outlook.MailItem)tmpOutlookApp.CreateItem(Outlook.OlItemType.olMailItem);
tmpMessage.HTMLBody = "Test";
String sDisplayName = "Test";
int iPosition = (int)tmpMessage.Body.Length + 1;
int iAttachType = (int)Outlook.OlAttachmentType.olByValue;
Outlook.Attachment oAttach = tmpMessage.Attachments.Add(@"C:\Test.txt", iAttachType, iPosition, sDisplayName);
tmpMessage.Subject = "Your Subject will go here.";
Outlook.Recipients oRecips = (Outlook.Recipients)tmpMessage.Recipients;
Outlook.Recipient tmpRecipient = (Outlook.Recipient)oRecips.Add("EMail");
tmpRecipient.Resolve();
tmpMessage.Send();
}