Wenn Sie den System.Net.Mail-Namespace verwenden, um eine E-Mail mit Anhang an ein Yahoo-Konto zu senden, wird der Anhang mit dem Namen "untitled" anstelle des Dateinamens heruntergeladen.Anhang ohne Dateiname
In der Yahoo Mail-Oberfläche sieht der Anhang mit dem korrekten Namen aus, aber wenn Sie ihn herunterladen, wird der Download-Name für alle Anhänge auf "untitled" gesetzt. Die gleiche E-Mail-Nachricht funktioniert gut mit Google Mail, Outlook.com, Windows Live Mail und anderen Clients.
Mit Blick auf die Raw-Nachricht enthält es einen Inhaltstyp mit Namen, aber ohne Dateinamenattribut. Die Yahoo funktioniert einwandfrei, wenn das Dateinamensattribut gesetzt ist, aber die C# -Bibliothek dies nicht verwendet.
Das ist die von C# generierten Header für Anlagen:
Content-Type: application/octet-stream; name=test.pdf
, dass der Header ist, die mit Yahoo funktioniert:
Content-Type: application/octet-stream; name=file2; filename=test.pdf
Wer bisher dieses Problem bekommen? Gibt es eine Arbeit für C# Standard Mail senden?
using (var message = new MailMessage("[email protected]", "[email protected]", "Test with attachment", "Test with attachment"))
{
var attachment = new Attachment(@"c:\temp\test.pdf"); // Same result using stream instead path to file.
attachment.Name = "test.pdf"; // Same result without this line.
message.Attachments.Add(attachment);
using (var smtp = new SmtpClient("smtp.domain", 587))
{
smtp.Credentials = new NetworkCredential("[email protected]", "password");
smtp.Send(message);
}
}
Haben Sie versucht, die Name-Eigenschaft des Anhangs festzulegen? Können Sie uns Ihren Code zeigen? – HaukurHaf
Ja, ich habe versucht, den Dateinamen einzustellen, als Stream zu senden und einen Pfad für die Datei zu übergeben. Ich werde den Code einfügen, um es klarzustellen. –