标签: exchange-server-2007

使用Exchange 2007传输代理编辑SMTP标头

我目前正在编写Exchange 2007传输代理,以替换来自特定发件人的所有传出邮件中的某些邮件头.我成功地成功替换了"From"SMTP标头,但重写"Return-Path"标头似乎不起作用.

为了实现这一切,我编写了一个自定义的SmtpReceiveAgent并订阅了OnEndOfData事件,如下所示:

private static void MyAgent_OnEndOfData(ReceiveMessageEventSource source, EndOfDataEventArgs e)
        {

            try
            {
                var address = e.MailItem.Message.From.SmtpAddress;
                if (address.ToLower().EndsWith("[internal email domain]"))
                {
                    // replace the From: header - WORKING FINE!
                    e.MailItem.Message.From = new EmailRecipient("[displayname]",
                                                                 "[email address]");

                    // replace the Return-Path: header - NOT WORKING!
                    var headerList = e.MailItem.Message.RootPart.Headers;
                    var header = (AddressHeader)headerList.FindFirst("Return-Path");
                    var newheader = new AddressHeader("Return-Path") { Value = "[email address" };
                    headerList.ReplaceChild(newheader, header);
                }
            }
            catch (Exception ex)
            {
               // do something useful here
            }

        }
Run Code Online (Sandbox Code Playgroud)

exchange-server smtp exchange-server-2007 exchange-transport-agents

5
推荐指数
1
解决办法
3181
查看次数

如何使用Exchange Web服务(EWS)检索全局联系人?

我正在使用EWS并希望从公司的交换中获取全球地址列表.我知道如何检索个人联系人列表.

API文档中的所有示例都涉及更新用户信息,但没有具体说明如何检索它们.

我甚至尝试过以下列出文件夹,但它没有正确的结果.

private static void ListFolder(ExchangeService svc, FolderId parent, int depth) {
    string s;
    foreach (var v in svc.FindFolders(parent, new FolderView(int.MaxValue))) {
        Folder f = v as Folder;
        if (f != null) {
            s = String.Format("[{0}]", f.DisplayName);
            Console.WriteLine(s.PadLeft(s.Length + (depth * 2)));
            ListFolder(svc, f.Id, depth + 1);

            try {
                foreach (Item i in f.FindItems(new ItemView(20))) {
                    Console.WriteLine(
                        i.Subject.PadLeft(i.Subject.Length + ((depth + 1) * 2)));
                }
            } catch (Exception) {
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然问题已经提出(如何从Exchange Server获取联系人列表?),但这个问题特别涉及使用EWS获取全局地址列表,而此问题在一般级别上请求建议.

exchange-server exchange-server-2007

5
推荐指数
1
解决办法
7479
查看次数

使用EWS和Exchange 2007通过对话实现Outlook 2010的分组

我们正在使用EWS在某些邮箱上生成一些分析。

这部分是获得对话的计数/名称/开始/结束。对话类似于Outlook 2010在按对话分组时显示它们的方式。

我希望能够使用ConversationId对项目进行分组,但这似乎仅是Exchange 2010的功能。

我可以在文件夹中按主题分组,以简单地了解线程...但是,这不能像Outlook 2010那样处理拆分的对话-特别是,它不能处理引入已发送邮件中的回复(这些对我们很重要-如果不查看答复,就无法获得良好的指标)。

我当前用于获取线程信息的代码如下所示:

private IEnumerable<EmailThread> GetThreads(Folder folder)
    {
        var view = new ItemView(int.MaxValue) {PropertySet = new PropertySet(BasePropertySet.IdOnly)};

        // view.PropertySet.Add(ItemSchema.ConversationId); - Can't use this as we're stuck on Exchange 2007 !!!
        view.PropertySet.Add(ItemSchema.Subject);
        view.PropertySet.Add(ItemSchema.DateTimeReceived);

        var grouping = new Grouping(ItemSchema.Subject, SortDirection.Descending, ItemSchema.DateTimeReceived, AggregateType.Maximum);
        var groupResults = folder.FindItems(view, grouping);


        return groupResults.Select(x => new EmailThread
        {
            Name = x.Items.First().Subject,
            Items =  x.Items.Count,
            StartDate = x.Items.Last().DateTimeReceived, // Assume last in thread is first email
            EndDate = x.Items.First().DateTimeReceived // Assume first in …
Run Code Online (Sandbox Code Playgroud)

c# outlook exchange-server exchange-server-2007 exchangewebservices

5
推荐指数
1
解决办法
2976
查看次数

使用MS Exchange 2007进行编程

我是Exchange空间编程的新手.

我想在c#中开发交换插件.这个插件应该能够获取所有消息(所有电子邮件ID的消息),并根据一些规则插件应该能够对消息进行一些操作.

谢谢,克里希纳

c# exchange-server exchange-server-2007 exchangewebservices c#-4.0

5
推荐指数
1
解决办法
2739
查看次数

Exchange Server 2007 Web服务PHP类

有没有人知道将通过MS Exchange Server 2007 Web服务连接的开源PHP类(最好是BSD或MIT许可证).肥皂?

我正在寻找一个更高级别的类,它具有通过发送消息的功能.网络服务.

php exchange-server exchange-server-2007 exchangewebservices

3
推荐指数
2
解决办法
1万
查看次数

Exchange 2003 Web服务和Exchange 2007 Web服务之间的差异

我们将Exchange集成到我们的CRM(日记和电子邮件)中; 我们通过SQL 2008服务器中的CRL函数完成此操作,该服务器处理与Exchange 2007 Web服务的所有身份验证和通信.然后,CLR将函数作为常规函数和存储过程呈现给SQL Server中的开发人员,使编码简单.我们正在通过SSIS处理我们的同步以同步数据.

不幸的是,我不能只将Exchange 2003安装到我们的网络上我们的销售团队正在协商销售,这将要求我将代码迁移回Exchange 2003上工作.当我想要回溯接口时,什么是主要的Exchange 2003和Exchange 2007 Web服务之间的功能差异?

我可能面临的任何潜在陷阱是什么?

谢谢 :)

exchange-server-2007 exchange-server-2003

3
推荐指数
1
解决办法
7253
查看次数

Microsoft Exchange WebService URL

如何知道Exchange WebService URL,我有Exchange服务器版本2007,我正在尝试编写一个小型C#控制台应用程序来从Exchange服务器收集一些数据,但不知道什么是Exchange.WebServices Url.AutodiscoverUrl失败.

c# exchange-server-2007 exchangewebservices

3
推荐指数
1
解决办法
9038
查看次数

EWS管理:获取约会的必需和可选参加者

至于我现在,我知道如何来从Exchange服务器的约会,但只要我想看到的必需和可选的与会者,这些字段是空的......我查了任命吊起并有与会者,除了我.我是否必须以不同方式配置Outlook或者我是否会错过某些内容?

            List<Appointment> listOfAppointments = new List<Appointment>();

        CalendarFolder cfolder = CalendarFolder.Bind(MyService, WellKnownFolderName.Calendar);
        CalendarView cview = new CalendarView(from.ToUniversalTime(), to.ToUniversalTime());
        cview.PropertySet = new PropertySet(ItemSchema.Subject);
        cview.PropertySet.Add(AppointmentSchema.Start);
        cview.PropertySet.Add(AppointmentSchema.End);
        cview.PropertySet.Add(AppointmentSchema.Location);
        cview.PropertySet.Add(AppointmentSchema.ICalUid);
        cview.PropertySet.Add(AppointmentSchema.Organizer);
        cview.PropertySet.Add(AppointmentSchema.IsAllDayEvent);
        cview.PropertySet.Add(AppointmentSchema.DateTimeCreated);

        FindItemsResults<Appointment> result = cfolder.FindAppointments(cview);
Run Code Online (Sandbox Code Playgroud)

这就是我如何获取约会,正如我从例外和追踪和错误中所知,我不需要交换参与者...但也许我错过了一些东西.

exchange-server exchange-server-2007 exchangewebservices ews-managed-api

3
推荐指数
1
解决办法
2488
查看次数

什么是IPM.Note及其用途?

关于IPM,我有几个问题。如果有人能消除我的疑虑,那就太好了

1)什么是IPM.Note?那是一个日志文件吗?很少的详细信息,以便我能理解

2)当我键入IPM时,在Windows搜索中请注意,它显示了我所有在MS Outlook中的电子邮件。但是我看不到IPM这个词,请注意任何地方。我如何搜索IPM.Note,我如何获取所有email.msg文件

3)IPM是否有可能。注意将在Exchange Server 2007中,还是在本地计算机中?

4)我们将如何从IPM中获悉。请注意所有邮件或未读状态。

5)我们将如何从IPM获悉请注意我们已回复的所有邮件

提前致谢

mapi exchange-server exchange-server-2007 exchangewebservices

3
推荐指数
1
解决办法
3万
查看次数

EWS + Exchange 2007:检索内嵌图像

使用EWS托管API在C#中工作,我们无法有效地检索存储为内联附件的图像.

端点是显示带有内嵌图像的电子邮件,作为面板中完全形成的html页面.我们目前的代码:

     string sHTMLCOntent = item.Body;

      FileAttachment[] attachments = null;

      if (item.Attachments.Count != 0)
      {
        attachments = new FileAttachment[item.Attachments.Count];
        for (int i = 0; i < item.Attachments.Count; i++)
        {
          string sType = item.Attachments[i].ContentType.ToLower();
          if (sType.Contains("image"))
          {
            attachments[i] = (FileAttachment)item.Attachments[i];
            string sID = attachments[i].ContentId;
            sType = sType.Replace("image/", "");
            string sFilename = sID + "." + sType;
            string sPathPlusFilename = Directory.GetCurrentDirectory() + "\\" + sFilename;
            attachments[i].Load(sFilename);
            string oldString = "cid:" + sID;
            sHTMLCOntent = sHTMLCOntent.Replace(oldString, sPathPlusFilename);
          }
        }
      }
Run Code Online (Sandbox Code Playgroud)

(来源:http: …

c# inline image exchange-server-2007 exchangewebservices

2
推荐指数
1
解决办法
5331
查看次数