3

MailKitと を使用して電子メールを送信しようとしたMimeKitときに、次のエラーが表示されました。

トランスポート接続からデータを読み取ることができません: 接続先が一定時間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために確立された接続が失敗しました。

私が使用している vb.net コード:

Dim mail As New MimeMessage()
mail.From.Add(New MailboxAddress("John DOE", "john.doe@hotmail.com"))
mail.To.Add(New MailboxAddress("Mary JANE", "mary.jane@yahoo.com"))
mail.Subject = "Hello!"
Dim sText As New TextPart("plain")
sText.SetText("UTF-8", "How are you Jane?")
mail.Body = sText

Using smtp = New SmtpClient()
    smtp.LocalDomain = "XX.XXX.XX.XXX"
    smtp.Connect("server33.somewebhosting.com", 465, False)
    smtp.Authenticate("myusername@somewebhosting.com", "XXXXXXXXXXXXXX")
    smtp.Send(mail)
    smtp.Disconnect(True)
End Using

タイムアウト エラーは、次の行で発生します。

smtp.Connect("server33.somewebhosting.com", 465, False)

奇妙なことに、自宅のコンピューターでは機能しますが、職場では機能しません。

問題の原因は何だと思いますか?

4

1 に答える 1

3

SMTP ポート 465 は SSL ポートであるため、3 番目の引数はではなくにするConnect()必要があります。つまり、コードを次のように変更します。TrueFalse

smtp.Connect("server33.somewebhosting.com", 465, True)

その変更を行った後も SmtpClient が接続に失敗する場合は、サーバーに到達できないことを意味します。

問題を診断するには:

  1. 管理者に連絡して、ホスト名とポートが正しいことを確認してください
  2. 接続を妨げているファイアウォールの背後にいないことを確認してください
  3. SMTPサーバーが実際にオンラインであることを確認してください
于 2015-07-25T14:29:00.920 に答える