在C#中,使用Exchange Web Services (EWS) API实现邮件转发。以下是一个简单的示例,展示了如何将收到的邮件转发给另一个收件人:
首先,确保已安装Microsoft.Exchange.WebServices NuGet包。在Visual Studio中,可以通过以下步骤安装:
接下来,编写以下代码:
using System;
using Microsoft.Exchange.WebServices.Data;
namespace ExchangeMailForwarder
{
class Program
{
static void Main(string[] args)
{
// 用你的Exchange服务器地址和用户凭据替换这些值
string exchangeUrl = "https://your-exchange-server/ews/exchange.asmx";
string emailAddress = "your-email@example.com";
string password = "your-password";
// 创建ExchangeService对象并设置凭据
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
service.Credentials = new WebCredentials(emailAddress, password);
service.Url = new Uri(exchangeUrl);
// 创建一个搜索筛选器,以便只获取未读邮件
SearchFilter searchFilter = new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false);
// 获取收件箱中的未读邮件
FindItemsResults<Item> unreadMail = service.FindItems(WellKnownFolderName.Inbox, searchFilter, new ItemView(10));
foreach (EmailMessage email in unreadMail)
{
// 加载邮件正文和其他属性
email.Load();
// 创建一个新的邮件,用于转发
EmailMessage forwardEmail = new EmailMessage(service);
forwardEmail.Subject = email.Subject;
forwardEmail.Body = email.Body;
// 添加收件人
forwardEmail.ToRecipients.Add("recipient@example.com");
// 发送转发的邮件
forwardEmail.SendAndSaveCopy();
// 标记原始邮件为已读
email.IsRead = true;
email.Update(ConflictResolutionMode.AutoResolve);
}
}
}
}
请注意,您需要将exchangeUrl
、emailAddress
和password
变量替换为您的Exchange服务器地址和用户凭据。此外,您还需要将recipient@example.com
替换为要将邮件转发到的收件人地址。
这个示例将连接到Exchange服务器,查找收件箱中的未读邮件,然后将这些邮件转发给指定的收件人。同时,它还会将原始邮件标记为已读。