Remoteserver zurückgegeben 550 550 5.6.2 SMTPSEND.BareLinefeedsAreIllegal; Nachricht enthält blanken Zeilenvorschübe, die über DATA‘können nichtMailkit-SMTP-Fehler - BareLinefeedsAreIllegal
var message = new MimeMessage();
message.From.Add(new MailboxAddress(nameFrom, mailboxFrom));
message.Subject = Subject;
message.To.Add(new MailboxAddress(mailboxTo));
var bodyBuilder = new BodyBuilder();
var multipart = new Multipart("mixed");
bodyBuilder.HtmlBody = "Test Body";
multipart.Add(bodyBuilder.ToMessageBody());
byte[] bytes = System.IO.File.ReadAllBytes("Test.gif");
var attachment = new MimePart("binary", "bin")
{
ContentObject = new ContentObject(new MemoryStream(bytes), ContentEncoding.Base64),
ContentDisposition = new ContentDisposition(ContentDisposition.Attachment),
ContentTransferEncoding = ContentEncoding.Binary,
FileName = "F2.pdf"
};
multipart.Add(attachment);
message.Body = multipart;
using (var client = new SmtpClient())
{
// For demo-purposes, accept all SSL certificates (in case the server supports STARTTLS)
client.ServerCertificateValidationCallback = (s, c, h, e) => true;
client.Connect(ssServer, ssPort, MailKit.Security.SecureSocketOptions.Auto);
// Note: since we don't have an OAuth2 token, disable
// the XOAUTH2 authentication mechanism.
client.AuthenticationMechanisms.Remove("XOAUTH2");
// Note: only needed if the SMTP server requires authentication
client.Authenticate(ssMailBox, ssMailBoxPassword);
client.Send(message);
}
ich mit kodieren ContentEncoding.Base64 und ContentEncoding.Binary mit demselben Ergebnis bereits versucht habe, geschickt. Wenn ich den Anhangteil überspringe, wird die Post korrekt gesendet. Das "Test.gif" ist nur ein zufälliges Gif, das ich hochlade.
Ich habe über CHUNKING or the BDAT command gelesen aber nicht wirklich sicher darüber oder wie man es mit mailkit verwendet ... irgendwelche Vorschläge? Ich versuche nur, eine normale SMTP-Mail mit Anhängen zu senden, das kann nicht so schwer sein: |
Versuchen 'attachment.ContentTransferEncoding' zu' ContentEncoding.Base64' Einstellung. – jstedfast
Wenn das nicht funktioniert, wird es korrekt gesendet, wenn Sie keinen Anhang hinzufügen? Vielleicht ist der nackte Zeilenvorschub in den Headern? – jstedfast
Wenn Sie dies genauer betrachten, sollte MailKit einfach die richtige ContentTransferEncoding-Funktion selbst gesetzt haben. Wenn ich lokale Tests mache, tut es das. Welche Funktionen meldet Ihr SMTP-Server? Wenn Sie ein [ProtocolLog] (https://github.com/jstedfast/MailKit/blob/master/FAQ.md#ProtocolLog) erhalten, sendet es wirklich einen 'DATA' Befehl? oder sendet es eine richtige "BDAT"? Wenn Ihr Server "BINARYMIME" unterstützt, sollte MailKit die Codierung automatisch auf "binary" setzen und den Befehl "BDAT" verwenden. – jstedfast