職場では、Public Folder に PostItems を送信するためのカスタム フォームがあります。それらはカスタム フォームとフィールドにあるため、ExtendedProperties で取得できません。私がそれをしようとするたびに、ExtendedProperties.Count == 0.
非常に多くのリンクを見てきましたが、何らかの理由で、意味をなさない GUID が提供されており (その GUID はどこで取得したのか!?)、連絡先やカレンダーを中心に展開されています。 PostItem ではありません。
カスタム フィールド/列は、「IPM.Post.Special_Department_INBOX」と呼ばれる ItemClass に格納されます。
私が見た例のリンク:
それが役立つ場合、これはコードです:
public class PublicFolder
{
public string DisplayName { get; set; }
public FolderId FolderID { get; set; }
public int Childs { get; set; }
}
private void DoMagic()
{
try
{
List<PublicFolder> RootFolders = new List<PublicFolder>();
ExchangeService ES = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
try
{
ES.Credentials = new WebCredentials("email@domain.com", "password");
ES.AutodiscoverUrl("email@domain.com");
Folder F = Folder.Bind(ES, WellKnownFolderName.PublicFoldersRoot);
F.Load();
foreach (Folder fol in F.FindFolders(new FolderView(F.ChildFolderCount)))
{
PublicFolder PF = new PublicFolder();
PF.DisplayName = fol.DisplayName;
PF.Childs = fol.ChildFolderCount;
PF.FolderID = fol.Id;
RootFolders.Add(PF);
}
foreach (PublicFolder PF in RootFolders)
{
Folder Q = Folder.Bind(ES, PF.FolderID);
{
if (Q.ChildFolderCount > 0)
{
Q.Load();
if (Q.DisplayName == "Special Department's Folder")
{
foreach (Folder W in Q.FindFolders(new FolderView(Q.ChildFolderCount)))
{
if (W.DisplayName == "Inbox Folder")
{
Folder R = Folder.Bind(ES, W.Id);
{
foreach (Item I in R.FindItems(new ItemView(R.TotalCount)))
{
//THIS IS WHERE I WANT TO GET ITEM'S CUSTOM FIELDS FROM CUSTOM FORM
}
}
}
}
}
}
}
}
}
catch (Exception E)
{
MessageBox.Show(E.Message);
}
}
}