Independentsoftが生成した.msgメッセージの転送時に添付ファイルが失われる
-
06-07-2019 - |
質問
正直言って、最初はプログラミングの問題だとは思っていなかった問題がありますが、他のすべての領域を確認した後、フィードバックがあればそれをお願いします。
ユーザーに添付ファイル付きのメールを送信するASP.NET Webアプリケーションがあります。送信されると、メッセージは.msgファイルとしてSharePointに保存されます。これらはすべて正しく確実に機能します。
私たちが発見した問題は、ユーザーが.msgファイルを開いて(つまり、SharePointからダウンロードした)転送すると、添付ファイルが電子メールから落ちることです。添付ファイルは.msgファイルにあり、開いて表示することができます-転送するときにのみ問題が発生します(ドキュメントを転送すると消えます)。
ユーザーはOutlook(さまざまなバージョン)とInternet Explorerを使用しています。
プログラミング以外の説明を排除するために、次のことを試しました。
- 送信された実際のメールを転送-これは機能します(つまり、添付ファイルが保持されます)
- msgファイルからコンテンツと添付ファイルを取得し、送信してから転送します-これは動作します
- このメールを受け取り、SharePointにアップロードし、ダウンロードして転送します-これは動作します
- 生成された.msgファイルを取得して、ローカルに保存します。オープンで転送-これは機能しません
- 生成された.msgファイルをSharePointから開く-これは機能しません
- すべての適切な信頼/イントラネット設定を変更します-違いはありません
- 生成された.msgを転送-ファイルは受信時にまだ失われています
電子メールは標準のSmtpClient機能を使用して送信されます。これは対処する必要がある領域ではないはずです。 Independentsoftと呼ばれるサードパーティのコンポーネントを使用して、.msgファイルを生成しています。これは、私たちが支援を必要とする領域である可能性が高いと思います。
このための抽出は非常に簡単です:
Message mailMsg = new Message(); // configuration, set email addresses, etc... foreach (Document doc in msg.Documents) { Attachment attachment = new Attachment(doc.Path); mailMsg.Attachments.Add(attachment); }
これを引き起こしている可能性のあるものについての考えは大歓迎です
解決
これは、かなり単純な解決策になりました。
Messageクラスには、MessageFlagsというコレクションが存在します。必要に応じて、単にMessageFlag.HasAttachmentを追加します
所属していません StackOverflow