我们正在开发一个模块,其主要目标是跟踪和收集有关损害检查(保险市场)的信息.每个案例都有一个代码(例如L000525).每个案例都可以由几个人管理.与特定案例相关的所有电子邮件都包含主题中的案例代码.
我们想要做的是收集并显示与每个特定案例相关的传入和发送的电子邮件.
我们的想法是,任何用户都可以打开"案例管理"窗口,选择特定案例,然后获取所有相关信息(当然包括电子邮件).
我们必须在大约20个用户的邮箱中找到电子邮件.所以问题是:
我们是Exchange世界的新手,所以我们在考虑Exchange模仿,但我们根本不确定.该模块是在Silverlight 3,WCF,SQL Server + Exchange 2007中开发的.
我如何使用PowerShell将收到的最后5封邮件的文本和标题返回到我的交换电子邮件帐户?有没有一个简单的方法/库来做到这一点?
这与我关于不在超级用户上使用outlook的问题有关.除了没有找到任何好的替代方案,我想我也可以编写自己的简单PowerShell客户端.
我使用以下代码查找用户发送的所有电子邮件,但这只搜索主收件箱文件夹,不检查任何子文件夹.我想搜索所有邮件项目,包括任何子文件夹.
我尝试过WellKnownFolderName.Root和WellKnownFolderName.Inbox,这些只搜索那些文件夹,而不是子文件夹.
private static void SearchItems(string email)
{
ItemView iv = new ItemView(10);
FindItemsResults<Item> fiitems = _service.FindItems(WellKnownFolderName.Inbox, "from:username@example.com", iv);
foreach (Item item in fiitems)
{
Console.WriteLine("Subject:\t" + item.Subject);
Console.WriteLine("Received At:\t\t" + item.DateTimeReceived.ToString("dd MMMM yyyy"));
Console.WriteLine();
}
Console.WriteLine("Press Enter to continue");
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud) 我正在使用CalendarItemType视图来检索日历项.我关心的唯一项目是我创建的项目,我知道它们都是每周重复项目.我能够获得每个单独的事件,并且从其中任何一个出现重复的主项目,但我想将我的搜索范围缩小到与我的模式匹配的那些项目.
我尝试使用FindItemType上的Restriction属性为calenderRecurrenceId指定一个带有null常量的NotEqualTo限制.这导致我的请求超时.到目前为止,我一直无法使用FindItemType加载重复,并且当我发现一个在周期性系列中出现的事件时,需要使用后续的GetItemType调用.
这是我开始使用的代码.该代码需要与Exchange 2007和Exchange 2010一起使用.
var findItemRequest = new FindItemType();
findItemRequest.ParentFolderIds = new DistinguishedFolderIdType[]
{
new DistinguishedFolderIdType()
};
((DistinguishedFolderIdType)findItemequest.ParentFolderIds[0]).Id = DistinguishedFolderIdNameType.calendar;
findItemRequest.Traversal = ItemQueryTraversalType.Shallow;
var itemShapeDefinition = new ItemResponseShapeType(
{
BaseShape = DefaultShapeNamesType.AllProperties;
}
findItemRequest.Item = calenderView;
findItemRequest.ItemShape = itemShapeDefinition;
var findItemResponse = this.esb.FindItem( findItemRequest );
Run Code Online (Sandbox Code Playgroud)
此外,如果你知道任何好的示例来源(超出MSDN中的那些),我会欢迎他们.我在紧急情况下拿起别人的代码,并试图动态学习Exchange Web服务.
我正在尝试从已删除的项目文件夹中找到项目唯一ID
ItemId id = new ItemId("zTK6edxaI9sb6AAAQKqWHAAA");
SearchFilter.IsEqualTo filter = new SearchFilter.IsEqualTo(ItemSchema.Id, id);
ItemView view = new ItemView(10);
view.PropertySet = new PropertySet(BasePropertySet.FirstClassProperties, EmailMessageSchema.Subject);
FindItemsResults<Item> results = _ExchangeService.FindItems(WellKnownFolderName.DeletedItems, filter, view);
Console.WriteLine(results.TotalCount);
Run Code Online (Sandbox Code Playgroud)
此代码返回一个异常说:
Validation failed.
Parameter name: searchFilter
Run Code Online (Sandbox Code Playgroud)
如果我搜索带有Subject的邮件,则相同的代码可以使用.
我想使用EWS托管API获取收件箱文件夹中的所有邮件并将其存储为.eml.问题是在获取(1)所有与邮件(2)所有的标题(如发件人,收件人,主题)(这些值的我保持信息from,to以及其他属性别的地方,所以我需要他们太)和(3)byte[] EmailMessage.MimeContent.Content.其实我对此缺乏了解
Microsoft.Exchange.WebServices.Data.ItemView,Microsoft.Exchange.WebServices.Data.BasePropertySet 和 Microsoft.Exchange.WebServices.Data.ItemSchema这就是为什么我发现它很难.
我的主要代码是:
当我创建PropertySet如下:
PropertySet properties = new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.MimeContent);
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
The property MimeContent can't be used in FindItem requests.
Run Code Online (Sandbox Code Playgroud)
我不明白
(1)什么这些ItemSchema和BasePropertySet有
(2)我们应该如何使用它们
所以我删除了ItemSchema.MimeContent:
PropertySet properties = new PropertySet(BasePropertySet.FirstClassProperties);
Run Code Online (Sandbox Code Playgroud)
我编写了简单的以下代码来获取收件箱中的所有邮件:
ItemView view = new ItemView(50);
view.PropertySet = properties;
FindItemsResults<Item> findResults;
List<EmailMessage> emails = new List<EmailMessage>();
do
{
findResults = service.FindItems(WellKnownFolderName.Inbox, view);
foreach …Run Code Online (Sandbox Code Playgroud) 我有以下代码通过某个字符串搜索全局通讯簿:
"CONF"
var esb = new ExchangeServiceBinding();
esb.Url = @"https://myurl.com/EWS/Exchange.asmx";
esb.Credentials = new NetworkCredential(_user,_pwd, _domain);
var rnType = new ResolveNamesType {ReturnFullContactData = true, UnresolvedEntry = "CONF"};
ResolveNamesResponseType response = esb.ResolveNames(rnType);
ArrayOfResponseMessagesType responses = resolveNamesResponse.ResponseMessages;
var responseMessage = responses.Items[0] as ResolveNamesResponseMessageType;
ResolutionType[] resolutions = responseMessage.ResolutionSet.Resolution;
Run Code Online (Sandbox Code Playgroud)
问题是它似乎正在进行"开始"搜索,所以我有一个名字叫:
它将显示"CONF-123",但如果我有一个名字"JOE-CONF",那么它就不会出现.
如何在此行上进行部分字符串搜索
var rnType = new ResolveNamesType {ReturnFullContactData = true, UnresolvedEntry = "CONF-"};
Run Code Online (Sandbox Code Playgroud)
我希望有类似的东西:
var rnType = new ResolveNamesType {ReturnFullContactData = true, UnresolvedEntry = "%CONF-%"};
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.
我使用Exchange Server托管API.如何确定预约是否私密?"约会"课程中似乎没有方法或属性.
我在Exchange Online服务上有一个邮件帐户.现在我正在尝试测试我是否能够通过c#应用程序向客户(在varoius域和Microsoft Office 365上)发送邮件
我尝试实现以下代码,但我收到错误
"根据验证程序,远程证书无效."
MailMessage mail = null;
mail = new MailMessage();
string[] strToList = "abc@gmail.com"
foreach (string strID in strToList)
{
if (strID != null)
{
mail.To.Add(new MailAddress(strID));
}
}
mail.From = "demo@onmicrosoft.com";
mail.Subject = "testing"
mail.IsBodyHtml = true;
mail.Body = "mail body";
SmtpClient client = new SmtpClient("smtp.outlook.office365.com");
client.Port = 587;
client.EnableSsl = true;
client.UseDefaultCredentials = false;
NetworkCredential cred = new System.Net.NetworkCredential("demo@onmicrosoft.com", "mypassword");
client.Credentials = cred;
client.Send(mail);
Run Code Online (Sandbox Code Playgroud)
如果我做错了,请建议.非常感谢提前.
我正在尝试使用最新的Exchange Web服务DLL,但是当我搜索我的硬盘时,我看到许多版本的Microsoft.Exchange.WebServices.DLL,最新版本为14.0.650.7,日期为1/24/12 .
我想重建我的机器但找不到官方的地方来获取这个DLL.我试图下载最新的SDK我没有看到任何DLL使用,也没有任何CHM供我使用.
我在哪里可以获得最新版本的Microsoft.Exchange.WebServices.DLL?