Azure OAuthを使用してMicrosoft Outlook 365をOdooに接続する¶
OdooはMicrosoftのAzure OAuth for Microsoft 365と互換性があります。AzureプラットフォームとOdooデータベースのバックエンドでいくつかの設定を行うだけで、カスタムドメインからセキュアなメールを送受信できます。この設定は、個人メールアドレスまたはカスタムドメインで作成されたアドレスのどちらでも動作します。
Microsoft Azureポータルでのセットアップ¶
新規アプリケーションを作成¶
開始するには、Microsoft's Azure Portal にアクセスします。もし Microsoft Outlook Office 365 アカウントがあればそれでログインし、なければ個人の Microsoftアカウント でログインします。Azure設定の管理者権限を持つユーザが接続し、以下の設定を実行する必要があります。次に、Microsoft Entra ID管理 (正式には Azure Active Directory) というセクションに移動します。
次に、トップメニューの 追加 (+) をクリックし、アプリ登録 を選択します。アプリケーションの登録`画面で、 :guilabel:`名前 を Odoo
などのわかりやすい名前に変更します。サポートされているアカウントの種類 セクションで、組織ディレクトリ(Microsoft Entra IDディレクトリ - マルチテナント)内のアカウントとMicrosoft個人アカウント(例:Skype、Xbox) を選択します。
リダイレクトURL セクションで、プラットフォームとして ウェブ を選択し、URL フィールドに https://<web base url>/microsoft_outlook/confirm
と入力します。 web.base.url
は、データベースへのログインに使用するURLによって変更される場合があります。
注釈
web.base.url に関するドキュメントでは、固有の URL を固定する方法が説明されています。Microsoft アプリに異なるリダイレクトURLを追加することも可能です。
URLがフィールドに追加された後、登録 アプリケーションを登録すると、作成されます。
API権限¶
次に API許可 を設定します。Microsoft 365のセットアップでEメールの読み込み(IMAP)と送信(SMTP)を行うには、Odooに特定のAPI許可が必要です。まず、左のメニューバーにある API許可 リンクをクリックします。次に、(+)許可を追加 ボタンをクリックし、よく使われるMicrosoft API`の下にある :guilabel:`Microsoft Graph を選択します。その後、 委任アクセス許可 オプションを選択します。
検索バーで以下の 委任アクセス権限 を検索し、それぞれ 権限を追加 をクリックします:
SMTP.Send
IMAP.AccessAsUser.All
注釈
User.Read 許可がデフォルトで追加されます。

ユーザとグループの割当¶
API許可を追加した後、左サイドバーメニューの一番上にある アプリケーション の 概要 に戻って下さい。
このアプリケーションにユーザを追加します。:guilabel:`エッセンシャル`の概要テーブルの下にある、:guilabel:`ローカルディレクトリの管理アプリケーション`と書かれたリンク、またはテーブルの右下にある最後のオプションをクリックします。

左サイドバーのメニューから ユーザとグループ を選択します。次に (+) ユーザ/グループを追加 をクリックします。アカウントによって、グループ`と:guilabel:`ユーザ`を追加することも、:guilabel:`ユーザ`だけを追加することもできます。個人アカウントでは :guilabel:`ユーザ しか追加できません。
:guilabel:`ユーザ`または:guilabel:`グループ`で、:guilabel:`選択なし`をクリックし、Odooの:guilabel:`Microsoftアカウント`からメールを送信するユーザまたはユーザグループを追加します。 :guilabel:`ユーザ/グループをEメールに追加し、:guilabel:`選択`をクリックし、:guilabel:`アプリケーションに割当`ます。
認証情報の作成¶
Microsoft Azureアプリが設定されたので、Odooの設定用に認証情報を作成する必要があります。これには クライアントID と クライアントシークレット が含まれます。まず、アプリの 概要 ページから クライアントID をコピーします。クライアントID または アプリケーションID は、アプリの エッセンシャル 概要の 表示名 の下にあります。

次に クライアントシークレット値 を取得する必要があります。この値を取得するには、左サイドバーメニューの 認証 & シークレット をクリックして下さい。次に クライアントシークレット を作成する必要があります。そのためには (+) 新規クライアントシークレット ボタンをクリックします。
右側のウィンドウに クライアントシークレットを追加 というボタンが表示されます。guilabel:`説明`の下に`Odooフェッチメール`または何かわかるものを入力し、:guilabel:`有効期限日`を設定します。
重要
最初の クライアントシークレット の有効期限が切れた場合、新規 クライアントシークレット を作成し、設定する必要があります。この場合、サービスが中断される可能性があるので、有効期限に注意し、可能な限り遠い日付に設定する必要があります。
次に、これら2つの値が入力されたら 追加 をクリックします。guilabel:クライアントシークレット値`と:guilabel:`シークレットID`が作成されます。:guilabel:`値
または クライアントシークレット値 は、このページを離れると暗号化されるので、メモ帳にコピーしておくことが重要です。:guilabel:`シークレットID`は必要ありません。

これらのステップの後、以下の項目がOdooで設定できる状態になります:
クライアントID (クライアントID または アプリケーションID)
クライアントシークレット (値 または クライアントシークレット値)
これで Microsoft Azure Portal 側の設定は完了です。
Odooでのセットアップ¶
Microsoft Outlook認証情報を入力する¶
まずOdooデータベースを開き、 アプリ`モジュールに移動します。次に、検索バーから :guilabel:`アプリ フィルタを削除し、Outlook
と入力して下さい。その後、:guilabel:`Microsoft Outlook`というモジュールをインストールします。
次に ディスカス セクションの下にある カスタムEメールサーバ のチェックボックスにチェックが入っていることを確認します。これにより Outlook 認証情報 の新しいオプションが入力されます。
に移動し、進捗を:guilabel:`保存`します。
次に、 クライアントID (アプリケーションID) と クライアントシークレット (クライアントシークレット値) をそれぞれのフィールドにコピー&ペーストし、 保存 して下さい。

送信メールサーバの設定¶
:guilabel:`一般設定`ページの :guilabel:`カスタムEメールサーバ`設定の下にある :guilabel:`送信Eメールサーバ`リンクをクリックして、Microsoftアカウントを設定します。
次に、新しいEメールサーバを作成し、:guilabel:`Outlook`にチェックを入れます。次に、:guilabel:`名前`(何でもかまいません)とMicrosoft OutlookのEメールの:guilabel:`ユーザ名`を入力します。
差出人フィルタ フィールドが空欄の場合は、ドメインまたはEメールアドレス を入力します。
次に、:guilabel:`Outlookアカウントに接続`をクリックします。
Microsoftの新しいウィンドウが開き、:guilabel:`認証プロセス`が完了します。Odooで設定されている適切なEメールアドレスを選択して下さい。

次に、はい`をクリックしてOdooがMicrosoftアカウントにアクセスすることを許可します。この後、ページはOdooで新しく設定された :guilabel:`送信メールサーバ に戻ります。設定は自動的にOdooに トークン をロードし、 Outlookトークン有効 というタグが緑色で表示されます。

最後に 接続テスト をクリックします。確認メッセージが表示されます。これでOdooデータベースはOAuth認証を使ってMicrosoft Outlookから安全でセキュアなEメールを送信できるようになりました。
単一の送信メールサーバでの設定¶
単一の送信サーバを設定することは、Microsoft Azureで利用可能な最も単純な設定であり、データベース内のユーザ用に広範なアクセス権を必要としません。
一般的なEメールアドレスはデータベース内の全てのユーザにEメールを送信するために使用されます。例えば、通知
エイリアス (notifications@example.com
) や 問い合わせ
エイリアス (contact@example.com
) で構成することができます。このアドレスはサーバ上で :guilabel:フィルタリングから` として設定する必要があります。また、このアドレスはシステムパラメータの {mail.default.from}@{mail.catchall.domain}
キーの組み合わせと一致している必要があります。
参考
さらに詳しくは 差出人フィルタドキュメント をご覧下さい。
注釈
システムパラメータ は メニューで 開発者モード を有効化することでアクセスできます。
この設定を使用すると、データベースから送信されるEメールには、設定された`通知`メールボックスのアドレスが使用されます。ただし、送信者の名前は表示されますが、Eメールのアドレスは変更されることに注意して下さい。

Example
単一の送信メールサーバーの設定:
送信メールサーバ ユーザ名 (ログイン) =
notifications@example.com
送信メールサーバ フィルタリングから =
notifications@example.com
mail.catchall.domain
システムパラメータ内 =example.com
mail.default.from
システムパラメータ内 =notifications
ユーザ別(複数ユーザ)設定¶
一般的なEメールサーバに加えて、データベース内のユーザに対して個別のEメールサーバを設定することができます。この設定が機能するためには、個々のサーバに フィルタリングから としてこれらのEメールを設定する必要があります。
この設定は、メールサーバへの接続を確立するために、メールサーバで構成された全てのユーザが設定へのアクセス権を持つ必要があるという点で、Microsoft Azureの2つの設定のうち、より難易度の高い設定です。
セットアップ¶
各ユーザは個別のEメールサーバを設定する必要があります。フィルタリングから`はそのユーザのEメールだけがそのサーバから送信されるように設定する必要があります。つまり、設定された :guilabel:`フィルタリングから に一致するメールアドレスを持つユーザだけがこのサーバを使用することができます。
参考
さらに詳しくは 差出人フィルタドキュメント をご覧下さい。
フォールバックサーバ が 通知 の送信を許可するように設定されている必要があります。このサーバの フィルタリングから は {mail.default.from}@{mail.catchall.domain}
の値でなければなりません。
注釈
システムパラメータ は メニューで 開発者モード を有効化することでアクセスできます。
重要
この取引用Eメールサーバの設定は、送信用Eメール一括配信サーバと同時に動作させることができます。メール一括配信サーバの フィルタリングから は空のままでもかまいませんが、メールマーケティング アプリケーションの設定で追加する必要があります。
参考
メール一括配信サーバの設定に関する詳細は、外部SMTPサーバを使用してEメールを送信 を参照して下さい。
Example
複数ユーザの送信メールサーバ設定:
- ユーザ #1 メールボックス
送信メールサーバ #1 ユーザ名 (ログイン) =
john@example.com
送信メールサーバ #1 フィルタリングから =
john@example.com
- ユーザ #2 メールボックス
送信メールサーバ #2 ユーザ名 (ログイン) =
jane@example.com
送信メールサーバ #2 フィルタリングから =
jane@example.com
- 通知メールボックス
送信メールサーバ #3 ユーザ名 (ログイン) =
notifications@example.com
送信メールサーバ #3 フィルタリングから =
notifications@example.com
- システムパラメータ
mail.catchall.domain
システムパラメータ内 =example.com
mail.default.from
システムパラメータ内 =notifications
受信メールサーバの設定¶
受信アカウントは送信Eメールアカウントと同様の方法で設定する必要があります。技術メニュー`の :guilabel:`受信メールサーバ に移動し、新しい設定を作成します。guilabel:Outlook Oauth認証`の横にあるボタンをチェックするか選択し、 :guilabel:`Microsoft Outlookのユーザー名`を入力します。 guilabel:`Outlookアカウントに接続`をクリックします。Odooが :guilabel:`Outlookトークン有効
と表示しますので、 テスト・確認 をクリックします。アカウントはOdooデータベースにメールを受信する準備ができているはずです。