net mail especificó error envio enviar electronico desde correos correo asp asincrono c# smtp smtpclient mailmessage

mail - error al enviar correo c#



.NET 4.5 Problema de rellenado de punto de cliente SMTP 4.5 al entregar al directorio de recogida (1)

El SmtpClient no debe ser byte-relleno cuando se guarda en un archivo. Eso solo es necesario cuando se "carga" el flujo de mensajes a un servidor SMTP para evitar que finalice prematuramente el comando DATA (que finaliza con la línea: ". / R / n").

Si SmtpClient está rellenando bytes al guardar en un archivo, ese es un comportamiento bastante roto.

Como esto es imposible de solucionar si usa System.Net.Mail (y supongo que lo es), le recomiendo usar MimeKit para crear y guardar su mensaje en un archivo.

Luego, si necesita volver a analizar el mensaje y enviarlo a través de SMTP, podría usar MailKit para hacerlo.

Con la esperanza de que alguien pueda ayudar con esto, he estado mirando y no puedo encontrar una respuesta en ningún lado.

Estoy creando un mensaje de correo electrónico que se enviará a un directorio de recogida especificado; este código se ha utilizado muchas veces en el pasado sin problemas. Ahora bien, cuando inspecciono el archivo resultante y más específicamente una URL dentro del archivo eml, puedo ver que en el medio hay un doble . . Por lo que he estado leyendo, entiendo que esto es parte del protocolo SMTP para dibujar cosas si el primer carácter de una línea en el mensaje comienza . . Este archivo más tarde será recogido por otro servicio que finalmente llevará a cabo el envío del correo electrónico.

Pude client.Send() a la línea exacta cuando llamo a client.Send() . Si inspecciono el cuerpo del mensaje antes del envío, la URL se forma correctamente. Inspeccionando el cuerpo del mensaje después de que lo llamé, está el .. presente en la URL.

Mi pregunta o preguntas, supongo, son las siguientes:

  1. ¿Alguien más ha tenido problemas con el relleno de puntos al usar SmtpDeliveryMethod.SpecifiedPickupDirectory ?
  2. ¿De quién es el trabajo para manejar esto correctamente? ¿El .NET SMTP o el servicio secundario que recoge este mensaje en una fecha posterior y lo envía al destino final?
  3. ¿Algún consejo sobre cómo resolver esto?

Anteriormente probé el enfoque descrito aquí , pero falla con numerosas excepciones.

Principalmente estoy buscando una forma de guardar este archivo eml en una ubicación en el disco que luego pueda ser recogido y enviado, mi conocimiento sobre C # es aún bastante limitado, por lo que puede haber algo simple, estoy simplemente mirando, así que cualquier ¡el consejo o la dirección serían enormemente apreciados!

He creado una pequeña muestra de código para intentar recrear el problema, este no es el contenido exacto que estoy usando, pero sí muestra que después del envío a través del método client.Send (), hay 2 ''... ''al comienzo de la cadena.

using (var client = new SmtpClient()) { client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; client.PickupDirectoryLocation = @"C:/temp"; var message = new MailMessage(); message.To.Add(new MailAddress("[email protected]")); message.From = new MailAddress("[email protected]"); message.Subject = "Smtp Dot Stuffing Test"; message.Body = ".A.B.C..... .0.1.2.3.4.5.6.7.8.9"; client.Send(message); }