目的
Microsoft Outlookのメールアカウントで、OAuth 2.0を使用してSMTP/IMAP/POPのプロキシサーバを構築し、BizRobo!から安全にメール操作できるようにします。
なお、Microsoft による「SMTP AUTHの基本認証の完全廃止」が2025年9月に予定されているため、これに対応するOAuth 2.0認証方式の導入が必要になります。
使用ツール
Email OAuth 2.0 Proxy
Microsoft Azure ポータル(アプリ登録)
Python(pywebview ライブラリなど)
構築手順
⚠️MCサーバとRSサーバを別建てにしている場合は、RSサーバに構築してください。
Azureアプリの作成
-
Azureポータルでアプリ登録
Azureポータルにログイン → 「アプリの登録」へ
「新規登録」
名前: 任意(例: メール送信_プロキシ)
アカウント種別: この組織のディレクトリのみに含まれるアカウント
リダイレクト URI: http://localhost作成後に表示される以下をメモ:
アプリケーション (クライアント) ID → client_id
ディレクトリ (テナント) ID → tenant_id
-
APIアクセスの構成(APIアクセス許可)
「API のアクセス許可」 > 「許可の追加」
「Microsoft Graph」または「Outlook」関連API
下記スコープを追加(すべて「委任されたアクセス許可」)IMAP.AccessAsUser.All
POP.AccessAsUser.All
SMTP.Send
offline_access「管理者の同意を与える」ボタンをクリック
-
クライアントシークレット作成
「証明書とシークレット」→ 「新しいクライアントシークレット」
シークレット値をコピーして控えておく(client_secret)
Pythonのインストール
-
以下の公式ページにアクセス
https://www.python.org/downloads/windows/
-
最新の Windows installer (64-bit) をダウンロード
-
インストーラー起動時に以下を必ずチェック
「Add Python.exe to PATH」にチェックを入れる
次に「Install Now」を選択
- インストール完了後、コマンドプロンプトを再起動し、python --version で動作確認
プロキシの設定
①プロキシの本体コードをダウンロード
GitHub にアクセス
URL: https://github.com/simonrob/email-oauth2-proxy
緑の「Code」ボタン → 「Download ZIP」
→ ダウンロード後、ZIPを解凍(例: C:\emailproxy\)
②必要な Python パッケージのインストール
解凍したフォルダに移動し、以下のコマンドを実行
cd C:\emailproxy
pip install -r requirements-core.txt -r requirements-gui.txt
⚠️以下のようなエラーが出た場合はpipをupgradeしてください。
C:\emailproxy>pip install -r requirements.txt
[notice] A new release of pip is available: 25.0.1 -> 25.1.1
[notice] To update, run: python.exe -m pip install --upgrade pip
ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'
③emailproxy.config を修正
アカウントの設定を以下のように修正してください。
※Outlookの設定以外不要であれば他のアカウント設定は削除しても構いません。
[利用するメールアドレス(例:xxx@xxx.co.jp)]
permission_url = https://login.microsoftonline.com/<テナントID>/oauth2/v2.0/authorize
token_url = https://login.microsoftonline.com/<テナントID>/oauth2/v2.0/token
oauth2_scope = https://outlook.office.com/IMAP.AccessAsUser.All https://outlook.office.com/POP.AccessAsUser.All https://outlook.office.com/SMTP.Send offline_access
redirect_uri = http://localhost
client_id = <アプリのクライアントID>
client_secret = <クライアントシークレット>
⚠️<テナントID>には「common」ではなく実際のテナントIDを指定。
common だと AADSTS50194 エラーが発生します。
④Proxyサーバ起動
以下のコマンドでPythonを起動します。
python emailproxy.py --config emailproxy.config
ローカルでIMAP/POP/SMTPのプロキシが起動(例: 127.0.0.1:1587)
認証をする
-
MCのSMTPの設定を変更する
下記のように設定します。
ユーザー名はconfigファイルに設定したアカウントをご利用ください。
-
MCからエラー通知を出す
認証するために実際にMCからエラー通知を出します。
ロボットエラーが起きるロボットをMCから実行してください。
-
認証
プロキシサーバーが起動していればアイコンが表示されますので、右クリックから該当の箇所をクリックするとアクセスしてきたユーザーが表示されます。
このユーザーを選択するとMicrosoftの認証画面が表示されます。
認証が成功すれば、再度MCからエラー通知を出すとメールが届くようになります。
サービス登録
PC起動時に自動でEmail OAuth2.0 Proxyを起動できるようにサービスに登録します、
また、手動でコマンドを実行しなくても常時バックグラウンドで稼働できるようになります。
①nssmのダウンロードと展開
公式サイトから nssm をダウンロード
https://nssm.cc/download
ZIPを解凍し、nssm.exe を任意のフォルダ(例:C:\nssm\nssm.exe)に配置
②サービスの作成
管理者権限のコマンドプロンプトで以下を実行:
C:\nssm\nssm.exe install EmailProxyService
するとGUIが表示されるので、以下のように入力:
Peth:
C:\Users\Administrator\AppData\Local\Programs\Python\Python313\python.exe
Arguments:
C:\emailproxy\emailproxy.py
Startup directory:
C:\emailproxy
「Install Service」をクリック
③サービスの起動
以下のコマンドでサービス起動:
net start EmailProxyService
※ 正常に起動すれば、ブラウザなしでもメールクライアントから接続できます。
サービスの停止・削除(必要に応じて)
net stop EmailProxyService
nssm remove EmailProxyService confirm
まとめ
Basic認証廃止で様々なサービスに影響が出ていると思います。
BizRobo!も同様でシステム改修に時間を要することが想定されます。
9月までに間に合えばいいですが、間に合わない場合にメール通知がこないと運用上問題となるケースが多いと思いますので本記事を参考にしていただければ幸いです。