C# mialkit(outlook)の送信時のエラー

タグの編集
投稿者 ケンケン  (社会人) 投稿日時 2023/4/20 09:25:15
C# mailkit 使用時のoutlook 送信時のエラー

           // 変数宣言
            string MAIL_FROM = "sato@xxxxxxx.co.jp";
            string MAIL_TO = "sato@xxxxxxx.co.jp";
            string MAIL_ATT = @"C:\wk\xxxxx.pdf";
            string MAIL_SMTP = "smtp.office365.com";
            int MAIL_PORT = 587;

            string userName = "sato@xxxxxxx.co.jp";
            string password = @"yyyyyyyyy";

            // 送信メッセージを作成
            var msg = new MimeKit.MimeMessage();

            // 送信元
            msg.From.Add(new MimeKit.MailboxAddress("", MAIL_FROM));

            // 宛先(TO)
            msg.To.Add(new MimeKit.MailboxAddress("", MAIL_TO));
            msg.Cc.Add(new MimeKit.MailboxAddress("", MAIL_TO));
            msg.Bcc.Add(new MimeKit.MailboxAddress("", MAIL_TO));

            // 件名
            msg.Subject = "試験添付資料有り";

            // 本文
            var tp = new MimeKit.TextPart(MimeKit.Text.TextFormat.Plain);

            tp.Text = @"メール送信テストを行う。

                       hello!,
                       this is dog!.
";

            // 添付ファイル無しの場合
            //msg.Body = tp;

            // 添付ファイル有り
            var mt = MimeKit.MimeTypes.GetMimeType(MAIL_ATT);
            var att = new MimeKit.MimePart(mt)
            {
                Content = new MimeKit.MimeContent(System.IO.File.OpenRead(MAIL_ATT)),
                ContentDisposition = new MimeKit.ContentDisposition(),
                ContentTransferEncoding = MimeKit.ContentEncoding.Base64,
                FileName = System.IO.Path.GetFileName(MAIL_ATT)
            };

            var mp = new MimeKit.Multipart("mixed");
            mp.Add(tp);
            mp.Add(att);
            msg.Body = mp;

            //SMTPサーバーに接続してメールを送信
            using (var sc = new MailKit.Net.Smtp.SmtpClient())
            {
                try
                {
                    //SMTPサーバに接続する
                    sc.Connect(MAIL_SMTP, MAIL_PORT, SecureSocketOptions.StartTls);

                    //ユーザー認証(SMTP認証)
                    sc.Authenticate(userName, password);

                    //メールを送信する
                    sc.Send(msg);
                }

                catch (Exception ex)
                {
                    MessageBox.Show("送信エラー" + "\r\n" +
                           ex.ToString(), "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                finally
                {
                    //SMTPサーバを切断する
                    sc.Disconnect(true);

                }
            }


    エラー内容です。

    535 5.7.139認証が失敗しました
  
 

   ※何方か分かる方ご教授お願いいたします。



 
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2023/4/20 10:04:13
Microsoft 365 (Exchange Online) 側の管理者設定で、
認証済み SMTP が有効になっていますか?

管理者アカウントで管理センターにログインして、
https://admin.microsoft.com/
[ユーザー]>[アクティブ なユーザー]
で sato@ を選択し、ポップアップで [メール] を選択。

[メール アプリ] セクション > [メール アプリの管理] で
[認証済み SMTP] の設定を確認してみてください。
投稿者 ケンケン  (社会人) 投稿日時 2023/4/20 11:06:17
回答ありがとうございます。

https://admin.microsoft.com/
上記をURLに行くと下記のメッセージが出力されます。


【センターでこのページを表示または管理する権限がありません。】

  ※
   自分が持っているIDは管理者権限有りませんので
   権限のあり人に頼みたいと思います。