Exchange Online で認証済みクライアントの SMTP 送信 (SMTP AUTH) を有効または無効にする

クライアント SMTP メール送信 (認証済み SMTP 送信 とも呼ばれる) は、Office 365および Microsoft 365 :

  • POP3 と IMAP4 クライアントのシナリオで使用されます。 これらのプロトコルでは、クライアントに対してメール メッセージの 受信 のみを許可します。そのため、認証された SMTP を使用してメール メッセージを 送信 する必要があります。
  • メール メッセージを生成して送信するアプリケーション、レポート サーバー、および多機能デバイス。

注意

2020 年 2 月の現在、OAuth 認証は Exchange Online への POP3、IMAP4、および SMTP AUTH 接続で利用できます。 詳細については、「OAuth を使用して IMAP、POP、SMTP 接続を認証する」を参照してください。

SMTP AUTH プロトコルは、通常は TCP ポート 587 でクライアント SMTP メール送信に使用されます。 SMTP AUTH は、モダン認証 (Modern Auth) をサポートします。

Office 365 または Microsoft 365 の Exchange Online メールボックスに接続する、ほぼすべての最新メール クライアント (Outlook、Outlook on the web、iOS メール、iOS および Android 用の Outlook など) では、メール メッセージの送信に SMTP AUTH を使用しません。

したがって、Exchange Online 組織で SMTP AUTH を無効にし、引き続き必要とするアカウント (メールボックス) でのみ有効にすることを強くお勧めします。 これを行うのに役立つ 2 つの設定があります。

  • SMTP AUTH を無効にする (または有効にする) 組織全体の設定。
  • テナント全体の設定を上書きするメールボックスごとの設定。

これらの設定は、Exchange Online (Office 365 または Microsoft 365) でホストされているメールボックスにのみ適用されます。

注意

  • 組織内の セキュリティの既定 が有効になっている場合は、Exchange Online で SMTP AUTH が既に無効になっています。 詳細については、「セキュリティの既定値とは」を参照してください。

  • 認証ポリシーで SMTP の基本認証が無効になっている場合、この記事で説明する設定を有効にしても、クライアントで SMTP AUTH プロトコルを使用することはできません。 詳細については、「Exchange Online で基本認証を無効にする」を参照してください。

組織で SMTP AUTH を無効にする

組織の SMTP AUTH をグローバルに無効 (または有効) にする唯一の方法は、Exchange Online PowerShell を使用することです。

組織で SMTP AUTH をグローバルに無効にするには、次のコマンドを実行します。

Set-TransportConfig -SmtpClientAuthenticationDisabled $true

: 既に無効になっている場合に SMTP AUTH を有効にするには、$false の値を使用します。

手順が適切に行われたことを確認する方法

組織で SMTP AUTH をグローバルに無効にしたことを確認するには、次のコマンドを実行し、SmtpClientAuthenticationDisabled プロパティの値が True であることを確認します。

Get-TransportConfig | Format-List SmtpClientAuthenticationDisabled

特定のメールボックスに対して SMTP AUTH を有効にする

SMTP AUTH を有効 (または無効にする) メールボックスごとの設定は、Microsoft 365 管理センターまたは Exchange Online PowerShell で使用できます。

Microsoft 365 管理センターを使用して特定のメールボックスで SMTP AUTH を有効または無効にする

  1. Microsoft 365 管理センターを開き、[ユーザー] > [アクティブ ユーザー] の順に移動します。

  2. ユーザーを選択し、表示されたポップアップで [メール] を クリックします。

  3. [メール アプリ] セクションで、[メール アプリの管理] を選択します。

  4. [認証済み SMTP] の設定を確認します (オフ = 無効、オン = 有効)。

  5. 完了したら、[変更の保存] をクリックします。

PowerShell Exchange Online を使用して、特定のメールボックスで SMTP AUTH を有効または無効にする

次の構文を使用してください。

Set-CASMailbox -Identity <MailboxIdentity> -SmtpClientAuthenticationDisabled <$true | $false | $null>

この値 $null は、メールボックスの設定が組織のグローバル設定によって制御されることを示します。 組織の設定を 上書き するには、値 $true (無効) または $false (有効) を使用します。 メールボックスの設定は、組織の設定よりも優先されます。

この例では、メールボックス sean@contoso.com に対して SMTP AUTH を有効にします。

Set-CASMailbox -Identity sean@contoso.com -SmtpClientAuthenticationDisabled $false

この例では、メールボックス chris@contoso.com に対して SMTP AUTH を無効にします。

Set-CASMailbox -Identity chris@contoso.com -SmtpClientAuthenticationDisabled $true

PowerShell Exchange Online を使用して、複数のメールボックスで SMTP AUTH を有効または無効にする

テキスト ファイルを使用してメールボックスを識別します。 スペースを含まない値 (エイリアス、メール アドレス、アカウント名など) が最適です。 テキスト ファイルには、次のようにメールボックスを各行に 1 つ含める必要があります。

akol@contoso.com
tjohnston@contoso.com
kakers@contoso.com

構文では、次の 2 つのコマンド (1 つはメールボックスを識別し、もう 1 つはそれらのメールボックスで SMTP AUTH を有効にする) を使用します。

$<VariableName> = Get-Content "<text file>"
$<VariableName> | foreach {Set-CASMailbox -Identity $_ -SmtpClientAuthenticationDisabled <$true | $false | $null>}

この例では、ファイル C:\My Documents\Allow SMTP AUTH.txt で指定したメールボックスに対して SMTP AUTH を有効にします。

$Allow = Get-Content "C:\My Documents\Allow SMTP AUTH.txt"
$Allow | foreach {Set-CASMailbox -Identity $_ -SmtpClientAuthenticationDisabled $false}

注意

メールボックスの SMTP AUTH を無効にするには、値 $true を使用します。 コントロールを組織の設定に戻す場合は、値 $null を使用します。

正常な動作を確認する方法

特定のメールボックスで SMTP AUTH が有効または無効になっていることを確認するには、次の手順を実行します。

  • Microsoft 365 管理センターの個々のメールボックス: [ユーザー] > [アクティブなユーザー] に移動 > ユーザーを選択 > [メール] > [メール アプリの管理] の順にクリックし、[認証済み SMTP] の値を確認します (オン = 有効、オフ = 無効)。

  • Exchange Online PowerShell の個々のメールボックス: <MailboxIdentity> をメールボックスの名前、エイリアス、メール アドレス、またはアカウント名に置き換え、次のコマンドを実行し、SmtpClientAuthenticationDisabled プロパティの値を確認します (False= 有効、True = 無効、空白 = 組織設定を使用する)。

    Get-CASMailbox -Identity <MailboxIdentity>  | Format-List SmtpClientAuthenticationDisabled
    
  • SMTP AUTH が無効になっているすべてのメールボックス: 次のコマンドを実行します。

    $Users = Get-CASMailbox -ResultSize unlimited
    $Users | where {$_.SmtpClientAuthenticationDisabled -eq $true}
    
  • SMTP AUTH が有効になっているすべてのメールボックス: 次のコマンドを実行します。

    $Users = Get-CASMailbox -ResultSize unlimited
    $Users | where {$_.SmtpClientAuthenticationDisabled -eq $false}
    
  • SMTP AUTH が組織設定によって制御されるすべてのメールボックス: 次のコマンドを実行します。

    $Users = Get-CASMailbox -ResultSize unlimited
    $Users | where {$_.SmtpClientAuthenticationDisabled -eq $null}