簡易回答はい可能です。
Office365で電子メールを処理するためのコンソールプログラムを作成していましたが、これはSQLとのインターフェイスでもあったため、間違いなく実行できます。必ずしも世界で最も簡単なものではありませんが、それほど難しいことでもありません。
あなたは、Exchange Webサービスを使用することができます(EWS)を明記のAPIを管理
条が可能であり、APIドキュメント https://msdn.microsoft.com/en-us/library/office/dd877012(v=exchg.150).aspx
あなたがAPIを見つけることができますGitHubの場所は、(このリンクを注意し、直接でありますMicrosoftのサイトを形成)上記第2のリンクが含まれているアセンブリを参照する方法について https://github.com/officedev/ews-managed-api
リンク: https://msdn.microsoft.com/en-us/library/office/dn528373(v=exchg.150).aspx
あなたが自動検出したり、URLを知っている場合だけにファイルを移動するために、あなたの受信トレイ&フォルダを探すので、これらのラインの1
exService.AutodiscoverUrl(_emailAddress, delegate { return true; });
exService.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");
それを設定することができます
string emailAddress = '[email protected]';
ExchangeService exService = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
exService.Credentials = new WebCredentials(emailAddress,"password");
の保守の作成と接続処理された後:
FolderView folderView = new FolderView(1);
folderView.PropertySet = new PropertySet(BasePropertySet.IdOnly);
folderView.PropertySet.Add(FolderSchema.DisplayName);
folderView.Traversal = FolderTraversal.Deep;
SearchFilter searchFilter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "ProcessedFolderName");
Folder Inbox = Folder.Bind(exService, WellKnownFolderName.Inbox);
FindFoldersResults folderResults = Inbox.FindFolders(searchFilter, folderView);
FolderId processedFolderId = folderResults.Folders[0].Id;
ことはあなたの基準を満たしたメッセージを探す:
完了時に結果を処理し、添付ファイルを保存して、メッセージを別のフォルダに移動して、同じものをインポートしないようにします。
foreach (Item i in findResults.Items)
{
foreach(FileAttachment attachment in i.Attachments)
{
attachment.Load(@"\\FilePathDirectory\" + attachment.FileName);
}
i.Move(processedFolderId);
}
あなたは何の結果が自分自身にエラーメッセージを送信したり、ピックアップにSSISのエラーを投げて、ジョブを失敗し得れば、あなたがテストしてソリューションを展開することができます。処理するメッセージが複数ある場合は、ファイルを複数回上書きする可能性があります。そのため、同じものを使用するのではなくファイル名に固有のものを追加することを検討することもできますが、SSISでも同様の問題が発生します。
とにかく、それが役立つことを願っています。
SSISが電子メールから添付ファイルを開いたりダウンロードしたりすることはできませんが、この機能が追加されているため、タスクファクトリをチェックアウトすることができます。http://pragmaticworks.com/Products/Task-Factory –
これを達成するためにルールを使用する方法があるかどうかを知る。最悪のシナリオでは、Webサービスを交換するための小さなC#サービス/アプリケーションを作成します。 – Charleh
@Charlehこれを行うネイティブルールはありませんが、期限切れの可能性があるこのリンクに基づいています。http://www.pixelchef.net/ content/rule-autosave-attachment-outlookは、それを行うルールを作成するためのVBAコードがかなり簡単であることを示しています。このルートの唯一の問題は、サーバー側のルールではなくデスクトップであるため、メールを正しい時刻に開く必要があることです。 – Matt