Sperando che qualcuno sia in grado di dare una mano, mi sono guardato attorno e non riesco a trovare una risposta da nessuna parte.Problema di abbondanza di punti client SMTP .NET 4.5 durante il recapito alla directory di prelievo
Sto creando un messaggio di posta utilizzando che verrà consegnato a una directory di prelievo specificata, questo codice è stato utilizzato numerose volte in passato senza problema. Ora, però, quando ispeziono il file risultante e più specificamente un URL all'interno del file eml, posso vedere che nel mezzo c'è un doppio .
. Da quello che ho letto, capisco che questo è parte del protocollo SMTP per dot roba se il primo carattere di una riga nel messaggio inizia con .
. Questo file verrà in seguito ritirato da un altro servizio che alla fine eseguirà l'invio dell'e-mail.
Sono stato in grado di restringerlo fino alla linea esatta quando chiamo client.Send()
. Se ispeziono il corpo del messaggio prima dell'invio, l'URL è formato correttamente. Ispezionando il corpo del messaggio dopo che l'ho chiamato, c'è l'..
presente nell'URL.
La mia domanda, o domande suppongo, sono i seguenti:
- Qualcun altro ha incontrato un problema con ripieno di punti quando si utilizza
SmtpDeliveryMethod.SpecifiedPickupDirectory
? - Di chi è il lavoro per gestire correttamente questo? .NET SMTP o il servizio secondario che preleva questo messaggio in un secondo momento e lo invia alla destinazione finale?
- Qualche consiglio su come risolvere questo problema?
Ho già provato il approach described here, ma non riesce con numerose eccezioni.
Sono principalmente alla ricerca di un modo per salvare questo file eml in un percorso sul disco che può essere successivamente recuperato e inviato, le mie conoscenze su C# sono ancora abbastanza limitate quindi potrebbe esserci qualcosa di semplice. Sono appena finito guardando, quindi qualsiasi consiglio o guida sarebbe molto apprezzato!
Ho creato un piccolo esempio di codice per provare a ricreare il problema, questo non è il contenuto esatto che sto usando, ma mostra che dopo l'invio tramite il metodo client.Send(), ci sono 2 '..' all'inizio della stringa.
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);
}
Puoi mostrarci qualche codice rilevante? – Dawnkeeper
@Dawnkeeper Ho appena aggiunto un piccolo pezzo di codice di esempio per dimostrare il problema –