0

こんにちは、Rebex Smtp SendDirect を使用してメールを送信しようとしていますが、次のエラーが表示されます。

 SendEmail: Rebex.Net.SmtpException: Client was not authenticated (530).
 at Rebex.Net.Smtp.WCB(String A, String B)
 at Rebex.Net.Smtp.ADB(String A, String[] B, String C, Stream D, TransferEncoding E)
 at Rebex.Net.Smtp.GDB(MimeMessage A, Stream B, MailAddress C, MailAddressCollection D)
 at Rebex.Net.Smtp.SendDirect(MimeMessage message)
 at Rebex.Net.Smtp.SendDirect(MailMessage message)

私のコード:

Dim myMail As New Rebex.Mail.MailMessage

Try
   myMail.From = "myname@myCompany.com"
   myMail.Subject = "Test"
   myMail.BodyText = "Blah blah"
   myMail.To = "myname@myCompany.com"
   myMail.Attachments.Add(New Rebex.Mail.Attachment(filePath))
   myMail.Priority = Rebex.Mail.MailPriority.Normal

   Smtp.SendDirect(myMail)


   Catch ex As Rebex.Mail.MailException

   Catch ex As System.Exception

   Finally

   End Try

送信者と受信者が同じ電子メール アドレスであることに注意してください。この会社は Exchange サーバーを使用しています。
受信者のメール アドレスとして自分の gmail アドレスを入力すると、コードは正常に動作します。
私が間違っていることは何ですか?

4

1 に答える 1

1

Smtp.SendDirectメソッドを使用して、電子メールを受信者の実際の SMTP サーバーに配信します。電子メールを受信者の SMTP サーバーに直接送信しようとしたときに「クライアントが認証されていませんでした」というエラー メッセージが表示される場合、会社の Exchange サーバーが、Exchange サーバーへの認証なしでユーザーの電子メールを受信しないように構成されていることを示しています。これは、SMTP サーバーに直接接続している "myname@myCompany.com" に "見知らぬ" 人が電子メールを送信することを事実上禁止するため、SMTP サーバーの奇妙な動作です。したがって、問題はおそらく Exchange サーバーの構成にあります。

受信者を GMail アドレスに変更すると、 Rebex Secure Mail Smtp.SendDirect メソッドが直接 GMail SMTP サーバーに接続し、動作が実際に異なる場合があります。

同じアドレス ("myname@myCompany.com") との間で電子メールを送受信する必要があり、サーバーで認証が必要な場合 (これはあなたのケースです)、Exchange サーバーで動作するはずの次のコードを試してください - 資格情報があると仮定しますユーザーの場合:

    Dim smtp As New Smtp()
    smtp.Connect("myCompany.com")
    smtp.Login("myname", "password")

    Dim myMail As New Rebex.Mail.MailMessage

    myMail.From = "myname@myCompany.com"
    myMail.Subject = "Test"
    myMail.BodyText = "Blah blah"
    myMail.To = "myname@myCompany.com"
    myMail.Attachments.Add(New Rebex.Mail.Attachment(filePath))
    myMail.Priority = Rebex.Mail.MailPriority.Normal

    smtp.Send(myMail)
    smtp.Disconnect()
于 2014-09-01T12:29:55.770 に答える