exchange-server – Exchange Web Services – 发送带附件的电子
发布时间:2020-12-14 16:29:29 所属栏目:资源 来源:网络整理
导读:我是新手使用 EWS(Exchange Web服务),我正在寻找一个简单的示例,演示如何发送带附件的电子邮件.我搜索了一个例子,我找不到任何简单明了的东西.我找到了有关如何发送电子邮件但未发送带附件的电子邮件的示例. 有没有人有他们推荐的例子的链接?在这里发布一个
|
我是新手使用
EWS(Exchange Web服务),我正在寻找一个简单的示例,演示如何发送带附件的电子邮件.我搜索了一个例子,我找不到任何简单明了的东西.我找到了有关如何发送电子邮件但未发送带附件的电子邮件的示例.
有没有人有他们推荐的例子的链接?在这里发布一个例子也可以正常工作! 解决方法
好吧,我最终想出来了.这是一种方法,它将创建邮件消息,将其存储为草稿,添加附件,然后发送电子邮件.希望这可以帮助那些无法找到像我这样的好榜样的人.
在我的例子中,我只会发送excel文件,这就是内容类型设置的原因.显然,这可以更改为支持任何类型的文件附件. 作为参考,变量esb是ExchangeServiceBinding类型的类级变量. 编辑 我还应该注意,在这个例子中,我没有检查交换操作中的响应类型是否成功.如果您想知道您对EWS的呼叫是否真的有效,那么一定要检查这一点. public void SendEmail(string from,string to,string subject,string body,byte[] attachmentAsBytes,string attachmentName)
{
//Create an email message and initialize it with the from address,to address,subject and the body of the email.
MessageType email = new MessageType();
email.ToRecipients = new EmailAddressType[1];
email.ToRecipients[0] = new EmailAddressType();
email.ToRecipients[0].EmailAddress = to;
email.From = new SingleRecipientType();
email.From.Item = new EmailAddressType();
email.From.Item.EmailAddress = from;
email.Subject = subject;
email.Body = new BodyType();
email.Body.BodyType1 = BodyTypeType.Text;
email.Body.Value = body;
//Save the created email to the drafts folder so that we can attach a file to it.
CreateItemType emailToSave = new CreateItemType();
emailToSave.Items = new NonEmptyArrayOfAllItemsType();
emailToSave.Items.Items = new ItemType[1];
emailToSave.Items.Items[0] = email;
emailToSave.MessageDisposition = MessageDispositionType.SaveOnly;
emailToSave.MessageDispositionSpecified = true;
CreateItemResponseType response = esb.CreateItem(emailToSave);
ResponseMessageType[] rmta = response.ResponseMessages.Items;
ItemInfoResponseMessageType emailResponseMessage = (ItemInfoResponseMessageType)rmta[0];
//Create the file attachment.
FileAttachmentType fileAttachment = new FileAttachmentType();
fileAttachment.Content = attachmentAsBytes;
fileAttachment.Name = attachmentName;
fileAttachment.ContentType = "application/ms-excel";
CreateAttachmentType attachmentRequest = new CreateAttachmentType();
attachmentRequest.Attachments = new AttachmentType[1];
attachmentRequest.Attachments[0] = fileAttachment;
attachmentRequest.ParentItemId = emailResponseMessage.Items.Items[0].ItemId;
//Attach the file to the message.
CreateAttachmentResponseType attachmentResponse = (CreateAttachmentResponseType)esb.CreateAttachment(attachmentRequest);
AttachmentInfoResponseMessageType attachmentResponseMessage = (AttachmentInfoResponseMessageType)attachmentResponse.ResponseMessages.Items[0];
//Create a new item id type using the change key and item id of the email message so that we know what email to send.
ItemIdType attachmentItemId = new ItemIdType();
attachmentItemId.ChangeKey = attachmentResponseMessage.Attachments[0].AttachmentId.RootItemChangeKey;
attachmentItemId.Id = attachmentResponseMessage.Attachments[0].AttachmentId.RootItemId;
//Send the email.
SendItemType si = new SendItemType();
si.ItemIds = new BaseItemIdType[1];
si.SavedItemFolderId = new TargetFolderIdType();
si.ItemIds[0] = attachmentItemId;
DistinguishedFolderIdType siSentItemsFolder = new DistinguishedFolderIdType();
siSentItemsFolder.Id = DistinguishedFolderIdNameType.sentitems;
si.SavedItemFolderId.Item = siSentItemsFolder;
si.SaveItemToFolder = true;
SendItemResponseType siSendItemResponse = esb.SendItem(si);
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
