es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué ocasionalmente recibo un mensaje de error al enviar correos electrónicos usando el servidor SMTP de .NET y Office365?

Utilizo el siguiente código para enviar correos electrónicos de prueba utilizando el servidor SMTP de Office 365. El problema es que a veces no funciona (devuelve el error que se muestra a continuación) y si lo intento de nuevo unos segundos después, entonces sí funciona. ¿Por qué es tan poco confiable? ¿Tiene que ver con mi código o es un problema con la red/servidor SMTP?

Public Sub SendEMail(ByVal fromAddress As String, ByVal toAddress As String, ByVal subject As String, ByVal body As String)
Try
    Using message As New MailMessage(fromAddress, toAddress, subject, body)
        message.Body = body
        Dim mailClient As New SmtpClient("smtp.office365.com", 587)

        mailClient.UseDefaultCredentials = False
        mailClient.DeliveryMethod = SmtpDeliveryMethod.Network
        mailClient.EnableSsl = True
        mailClient.Credentials = New Net.NetworkCredential(UserName, Password)

        mailClient.Send(message)
    End Using
Catch ex As Exception
    MessageBox.Show(ex.Message & vbCrLf & ex.InnerException.ToString)
End Try

Mensaje de error (cuando no funciona):

“Error al enviar el correo.
System.IO.IOException: No se pueden leer datos de la conexión de transporte: netioconnectionclosed.
at System.Net.Mail.SmtpReplyReaderFactory.ProcessRead(Byte[] buffer, Int32 offset, Int32 read, Boolean readLine)
at System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine)
at System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader caller)
at System.Net.Mail.CheckCommand.Send(SmtpConnection conn, String& response)
at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
at System.Net.Mail.SmtpClient.Send(MailMessage message)”

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que podría haber un problema con la conexión de red o con el servidor SMTP en sí. También es posible que el servidor SMTP agote el tiempo de espera o rechace la conexión debido a un alto tráfico u otros problemas. Es importante asegurarse de que las credenciales utilizadas para autenticarse con el servidor sean correctas y de que el código maneje adecuadamente cualquier excepción. Además, podría ser útil probar el código con un servidor SMTP diferente para aislar el problema.

Comments are closed.