Office365の共有メールボックスからSMTPメールを送信できますか?


13

O365への移行を検討しています。ただし、現在のExchangeサーバーを使用して、エラーが発生したときに外部ユーザーとサポートボックスの両方に電子メールを送信するソフトウェアを開発しました。

これをテストして、配置したコードがO365で引き続き機能することを確認しましたが、これまでのところ、あまり成功していません。

.NetのSmtpClientとMailKitのSmtpClientを使用してみましたが、どちらも機能しないようです。エラーが発生し続けます(これはMailKitからのエラーです。.Netエラーも同様です)。

「AuthenticationInvalidCredentials:5.7.3認証失敗[* .prod.exchangelabs.com]」

コードにある資格情報を使用してOWAにログインできます。資格情報が有効であることはわかっています。O356経由でメールを送ることはできませんか?これを可能にするためにExchangeで実行する必要がある特別な構成はありますか?

これが私がこれまでに試したことです:

MailKit

var msg = new MimeMessage();
msg.From.Add(new MailboxAddress("Support","support@mydomain.com"));
msg.To.Add(new MailboxAddress("Me","me@mydomain.com"));
msg.To.Add(new MailboxAddress("External User","euser@externaldomain.com"));
msg.Subject = "Test";
msg.Body = new TextPart("plain"){
   Text = "Here is a message for you"
};
using(var client = new SmtpClient()){
    client.ServerCertificateValidationCallback = (s,c,h,e) => true;
    client.AuthenticationMechanisms.Remove("XOAUTH2"); //Not sure what this does.  Have tried with and without
    client.Connect("smtp.office365.com", 587, MailKit.Security.SecureSocketOptions.StartTls);
    client.Authenticate(new NetworkCredential("support@mydomain.com", "supportPwd"));
    client.Send(msg);
    client.Disconnect(true);
}

.Net SmtpClientコードは、MailKitコードと非常によく似ていました。

  1. ライセンスユーザーとO365を介して送信する方法はありますか?(上記のコード)
  2. これを機能させるために、Exchangeまたはライセンスされたユーザーに必要な特別な設定はありますか?(1の答えが「はい」の場合)
  3. 認証されたユーザーが送信者権限を持つ共有メールボックスを介してメールを送信することはできますか?

更新

引き続き同じエラーメッセージが表示されます。ドメインユーザーに対してMFAが有効になっています。ただし、ユーザーが信頼できる場所(組織のIP)からサインインする場合、ユーザーにMFAを必要としないポリシーがあります。また、信頼できるIPとしてIPをリストしました。私の考えでは、MFAはここでは問題になりません。

資格情報が正しいことを知っています。私はそれらをコードからコピーし、M365にサインインするときにログイン画面に貼り付けました-そして私はうまくいきました。

何が悪いのですか?

回答:


7
  1. はい、できます。

  2. ユーザー設定: 管理センターのスクリーンショット メールアプリの管理のスクリーンショット

サーバー設定:https : //support.office.com/en-us/article/POP-IMAP-and-SMTP-settings-for-Outlook-com-d088b986-291d-42b8-9564-9c414e2aa040

SMTP server name smtp.office365.com

SMTP port 587

SMTP encryption method STARTTLS
  1. いいえ、あなたがすることはできません。SMTP経由でメールを送信するには、ライセンスユーザーが必要です。

https://answers.microsoft.com/en-us/msoffice/forum/msoffice_o365admin/set-up-smtp-relay-with-shared-mailbox/d7b98214-9564-432c-b098-525a98c529fb

私たちの顧客は、TYPO3で設定されたニュースレターシステムを使用しており、そのための新しいメールボックスを作成する必要がありました。ただし、軽いもので十分です。Office365 Business Premiumの代わりに、Office 365 F1ライセンスのみを割り当てました。

編集:これも見つかりました:Office365の共有メールボックスはSMTPを使用できますか?


だから、共有メールボックスに関する私の質問に答えるようです。しかし、私の最初のコードでは、ライセンスされたユーザーで作業していますが、それも機能しません。
RHarris

@RHarrisはいそうすべきです。編集された回答を参照してください。不完全な最初の返信でごめんなさい。
Wolfgang Jacques

0

同様の問題を抱えている人にとって、私の問題は条件付きアクセスポリシーであることがわかりました。マイクロソフトが提供するBaseline Policy: Block Legacy Authentication-AADでオンになっていた。

ポリシーを見ると、MFAを必要としない認証メカニズムをブロックするように設計されています。これには、POPやSMTPなどが含まれます。このポリシーを無効にすると、上記のコードは問題なく動作しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.