System.Net.Mail で「user..name@domain.com」や「user.@domain.com」の扱いについて

今回は System.Net.Mail がサポートしているメール アドレスの形式についてご紹介いたします。 System.Net.Mail では RFC 2821 / RFC 2822 に準拠したメール アドレスをサポートするよう実装されております。RFC 2821 / RFC 2822 に準拠していないメール アドレスを指定してメールを送信しようとすると FormatException の例外が発生いたします。 近年では RFC に準拠したメール アドレスのみを扱うシステムが多くなりましたが、一部の携帯端末では以下のように @ の直前にピリオドがあるメール アドレスやローカル パートにピリオドが 2 個以上連続するメール アドレスなど RFC に準拠していないメール アドレスが引き続き利用されています。    user.@domain.com   user..name@domain.com .NET Framework 3.5 以前では上記のメール アドレスに対してメールを送信するには以下のようにローカル パートをダブル クォーテーション (“”) で囲んで RFC に準拠したメール アドレスとして扱うのが唯一の方法となっておりました。ただし、ローカル パートをダブル クォーテーションで囲んだメール アドレスをどのように解釈するかはシステムの実装に依存するため、通信相手によっては期待した通りに処理されない場合もございました。    “user.”@domain.com  …


Exchange 2007 SP3 RU8-v2、Exchange 2010 SP1 RU7-v2、Exchange 2010 SP2 RU4-v2 がリリースされております

こんにちは、Exchange サポート チームの伯谷です。日本時間の 10/10 となりますが、Exchange 2007 SP3 RU8-v2、Exchange 2010 SP1 RU7-v2、Exchange 2010 SP2 RU4-v2 がリリースされております。これらのロールアップは、以下のデジタル署名に関するセキュリティ アドバイザリに対応するために v2 として再リリースを行っております。 Title: マイクロソフト セキュリティ アドバイザリ (2749655) – 署名されたマイクロソフト バイナリに影響を与える互換性の問題URL: http://technet.microsoft.com/ja-jp/security/advisory/2749655 – 詳細ロールアップの作成ではデジタル署名を行いますが、これまでリリースされていたロールアップ (v1) では、上記セキュリティ アドバイザリに記載されているように、デジタル署名が早期に期限切れとなってしまうという問題が発生します。そのため、今回の v2 版のロールアップではデジタル署名の修正を含んだものがリリースされております。なお、これまでリリースされていた v1 のロールアップも、引き続きインストールすることはできます。ただし、ロールアップのインストール作業中にデジタル署名の信頼性の確認を行うと、期限が切れてしまっている場合にはデジタル署名は有効とはなりません。また、既に v1 のロールアップを使用している場合でも、引き続き問題なく Exchange のサービス問題なく使用できます。ただし、イベント ログにて署名に関する CAPICOM のエラーが記録されます。 v2 のロールアップは以下のサイトからダウンロードが可能ですので、ご確認ください。* v2 のロールアップ適用の際は、これまで適用していた更新プログラムのロールアップをアンインストールする必要はありません。 – Exchange 2007 SP3 RU8-v2Title: Exchange Server 2007…


Office 365 に EWS で接続する際の注意点について

今回は Office 365 に Exchange Web Services (EWS) で接続する際に別途対応が必要な内容についてご紹介いたします。 On-Premise 環境の Exchange Server 2007 や Exchange Server 2010 に EWS で接続する場合、以下で示すように System.Net.NetworkCredential などを利用して資格情報を設定することが多いかと思います。(EWS Managed API では System.Net.NetworkCredential 以外に Microsoft.Exchange.WebServices.Data.WebCredentials でも資格情報を設定することができます)    ——- Exchange Web Services の例 ——-   ExchangeServiceBinding esb = new ExchangeServiceBinding();   esb.RequestServerVersionValue = new RequestServerVersion();   esb.RequestServerVersionValue.Version = ExchangeVersionType.Exchange2010_SP2;   esb.Credentials = new NetworkCredential(<UserID>, <Password>);   esb.Url…


.NET Framework 4.5 の System.Net.Mail で日本語の件名を ISO-2022-JP の Base64 でエンコードして送信する方法

今回は System.Net.Mail を利用してメールを送信する際に .NET Framework 4.5 で一部実装が変更されたことで発生する問題と対処方法についてご紹介いたします。 System.Net.Mail の MailMessage では SubjectEncoding を設定することで Subject で使用される文字コードを指定することができますが、SubjectEncoding に “iso-2022-jp” を設定した場合には Q エンコードが使用されてメールが送信されます。Q エンコードに対応しているクライアントでは特に問題とはなりませんが、Q エンコードに対応していない一部の携帯端末やメーラーでは Subject が文字化けする問題が多数確認され、.NET Framework 4 までは以下のように SubjectEncoding は指定しないで Subject に B エンコードでエンコードした文字列を設定することで対応することができました。     using System.Net.Mail;    using System.Text;     public static void SendMessage(string server)    {        string from    = “userA@contoso.com”;        string to      = “userB@contoso.com”;        string subject…


Exchange 2010 下書き保存されたメール アイテムの送信・保存時エラーについて

こんにちは、Exchange サポート チームの加藤です。今回は下書き保存された HTML メールを操作する際にエラーが発生する現象についてご案内いたします。まず、本現象は製品の不具合によって発生するものとなり、大変ご迷惑をおかけし申し訳ございません。今後リリースされるロールアップ (SP2 RU5) において、本現象についての修正が行われる予定ですが、現時点で確認している回避策をご紹介いたします。 現象の概要 Exchange 2010 SP1 RU3 以降をお使いの環境で、Outlook オンライン モードで以下の操作を行った場合、エラーが発生する場合があります。 ・オンライン モードでOutlook を使用 (キャッシュ モードがオフになっている状態)・HTML 形式のメールを作成する・Excel で作成したグラフなど、インライン イメージをメール本文に挿入する・一旦メールを下書き保存し、アイテムを閉じる 再度下書きフォルダからメール アイテムを開き、メールの保存、または送信を試みた際に以下のようなエラーが発生する場合があります。 < 送信を試みた場合 > ・「クライアントの処理が失敗しました。」とエラーが表示されます。 < 保存を試みた場合 > ・「このアイテムを指定されたフォルダーに保存できません。フォルダーが削除または移動されたか、またはフォルダーにアクセス権がないことが原因として考えられます。アイテムの既定のフォルダーにコピーを保存しますか?」とエラーが表示されます。 これらのエラーはメール  アイテムの一部のプロパティが読み取り専用として保存されていることに起因しており、Exchange がこのメール アイテムのプロパティを変更しようとする際にエラーが発生しております。本エラーについての回避策を以下にご紹介します。 回避策 上記の現象に対して、現時点で 2 つの回避策を確認しております。以下 2 つのいずれかによって、現象を回避することが可能です。 (A) Exchange キャッシュ モードを利用するOutlook 上の [アカウント設定] – [変更] において [Exchange キャッシュ モードを使う] のチェックをオンにします。…


Exchange 2010 メールボックスサーバーインストール時のエラーについて

近年多くのお客様が Exchange 2010 への移行作業を進めらておりますが、その中でメールボックス サーバーのインストールに失敗するという問い合わせをいただきます。今回はこの問題の解説と対処策についてご案内します。 – 現象の概要~~~~~~~~~~~~Exchange 2010 メールボックスサーバーをインストール時に、セットアップ ウィザードの画面上に以下のような例外エラーが表示され、インストールが失敗することがあります。 エラー:”$error.Clear();           $name = [Microsoft.Exchange.Management.RecipientTasks.EnableMailbox]::DiscoveryMailboxUniqueName;          $dispname = [Microsoft.Exchange.Management.RecipientTasks.EnableMailbox]::DiscoveryMailboxDisplayName;          $dismbx = get-mailbox -Filter {name -eq $name} -IgnoreDefaultScope -resultSize 1;          if( $dismbx -ne $null)          {            $srvname = $dismbx.ServerName;            if( $dismbx.Database -ne $null -and $RoleFqdnOrName -like “$srvname.*” )            {              Write-ExchangeSetupLog -info “Setup DiscoverySearchMailbox Permission.”;              $mountedMdb = get-mailboxdatabase $dismbx.Database…


Exchange 2010 の RBAC (Role Based Access Control) について

Exchange 2010 では、RBAC (Role Based Access Control) という新しいアクセス許可モデルを使用して、ユーザーや管理者が実行可能な操作について制御します。まずは RBAC 全般について以下の資料などをご確認いただければと思いますが、ここでは RBAC に関するいくつかの Tips をご紹介します。Title: 役割ベースのアクセス制御についてURL: http://technet.microsoft.com/ja-jp/library/dd298183.aspxお詫び: 以下にはコマンドレットの実行結果を参考として記載しておりますが、表示の幅の関係で、一部コマンドレットの結果が崩れて表示されるかと思います。お手数ですがメモ帳などへコピーしてご確認いただくか、または実際に Get- コマンドレットを実行していただいて結果をご確認ください。(Get コマンドレットでは設定を変更することはございません) 特定のコマンドレットを含む役割を表示するGet-ManagementRole に cmdlet パラメータに対象のコマンドレットを指定して実行します。出力された役割が、このコマンドレットを含む役割となります。例: Remove-Mailbox を含む役割を探します。[PS] C:\>Get-ManagementRole -cmdlet:Remove-MailboxName                                      RoleType——–                                      ————-Mail Recipient Creation          MailRecipientCreation特定のユーザーやグループへアサインされている役割を表示するGet-ManagementRoleAssignment の RoleAssignee パラメーターに対象のユーザー、またはグループを指定して実行します。例:  “HelpDesk01″ というグループへアサインされている役割を表示します。[PS] C:\>Get-ManagementRoleAssignment -RoleAssignee:”HelpDesk01” | ft  -AutoSizeName                                       Role                      RoleAssigneeName    RoleAssigneeType    AssignmentMethod    EffectiveUserName——–                                       ——                      ————————–     ————————-    ————————-     ————————–Mail Recipients-HelpDesk01    Mail Recipients    HelpDesk01                SecurityGroup            Direct                         すべてのグループ メンバー特定の役割をアサインされているユーザーやグループの表示Get-ManagementRoleAssignment の Role…


アイテム保持ポリシーでの Calendar/Tasks の対応について

Exchange Server 2010 から導入されたアイテム保持ポリシーでは、これまで予定アイテムとタスクアイテムはサポートされていませんでしたが、先日リリースされた Exchange Server 2010 SP2 RU4 からこれらのアイテムについてもサポートされるようになりました。これにより、60 日期間経過した予定アイテムを自動的に削除するような構成もアイテム保持ポリシーを利用することで実現可能となります。ID: 2685001Title: Retention policies do not work for the Calendar and Tasks folders in an Exchange Server 2010 SP1 environmentURL: http://support.microsoft.com/kb/2685001/en-us Exchange Server 2010 SP2 RU4 からの上記の動作のため、これまで種類が All (メールボックスにあるすべてのその他のフォルダー) のタグを利用している環境では注意する必要があります。一例として以下のようなポリシーをメールボックスに適用して運用していることを考えてください。   ———- ポリシーの構成 ———-   タグA (種類: All、保存期間: 45 日、処理内容:完全削除)   タグB (種類: Inbox、保存期間: 60 日、処理内容:完全削除)   タグC (種類:…


Exchange 2010 自動マッピング機能に関して

Exchange 2010 Service Pack 1 (SP1) では、ユーザーがフル アクセス権限を持っている任意のメールボックスにOutlook 2007 (KB 2475891 以降の修正プログラムが適用されている) と Outlook 2010 のクライアントが自動的にマッピングされる機能が導入されました。ユーザーに別のユーザーのメールボックスまたは共有メールボックスへフル アクセス権限が付与されている場合、Outlook によって該当ユーザーがフル アクセス権限を保持するすべてのメールボックスが自動的に読み込まれ、メールボックスが Outlook ナビゲーション ウィンドウに自動的に追加されます。 Exchange 管理コンソールまたは Exchange 管理シェルからユーザーに対してフル アクセス権限を付与すると共有メールボックスなどフル アクセス権限が付与されたメールボックス の Active Directory (AD) オブジェクトの msExchDelegateListLink 属性値にフル アクセス権限が付与されたユーザーの情報が登録されます。そして、自動検出 (Autodiscover) によってmsExchDelegateListLink  の属性値よりフル アクセス権限を持つユーザーの情報が AlternateMailbox 属性が Outlook に返され、フル アクセス権限を保持するすべてのメールボックスが自動的にOutlook ナビゲーション ウィンドウ上に表示されます。しかし、グループに対してフル アクセス権限を付与しましても、ユーザーの msExchDelegateListLink 属性には登録されません。msExchDelegateListLink 属性にはユーザーのみが登録可能であり、また、フル アクセス権限をグループに付与しても、グループのメンバーを msExchDelegateListLink 属性に登録する処理も行いません。このため、グループのメンバーとしてユーザーがフル アクセスを保持していても、グループに対してフル…


Exchange 2010 SP2 RU1 のイベント ID 4030 について

Exchange 2010 SP2  リリースによって多数の新機能が提供されていると共に、既知の不具合を修正する SP2 以降の更新プログラム (Rollup) もリリースされています。 Exchange 2010 をご利用の多くのお客様に現在 SP2 へのアップグレード及び SP2 以降の更新プログラムを適用いただいていますが、更新プログラムの適用後からイベント ID 4030 が記録される事象についてご質問いただきましたので紹介させていただきます。   – 現象 Exchange 2010 SP2 Rollup 1 以降を適用した環境で、クライアント アクセス サーバー (CAS) 上に以下のイベントID 4030 が定期的に記録されることがあります。 ——– Event ID     : 4030Category     : Availability ServiceSource       : MSExchange AvailabilityType         : ErrorMessage      : Process Microsoft.Exchange.InfoWorker.Common.Delayed`1[System.String]: Unable to find any replicas for…