Имя файла вложения не расшифровано / правильно закодировано, если его длина превышает 13 символов - PullRequest
3 голосов
/ 22 июня 2011

Я использую следующий код для отправки вложения электронной почты.Я использую C #, .NET 4.0, сервер BPOS Exchange для отправки.

var message = new MailMessage("duncanbayne@example.com", "duncanbayne@example.com")
    {
        Subject = "Test Message"
    };
var ms = new MemoryStream(Encoding.UTF8.GetBytes("我希望這個作品。"));
var attachment = new Attachment(ms, "檢", "text/plain")
        {
            TransferEncoding = TransferEncoding.Base64
        };
message.Attachments.Add(attachment);

var server = new SmtpClient("smtpserver", 25);
server.Send(message);

Это прекрасно работает.Если я постепенно увеличу длину имени файла, все будет работать, вплоть до точки, в которой имя файла имеет длину 13 символов ("檢 檢 檢 檢 檢 檢 檢 檢 檢 檢 檢 檢 檢)"):

http://i.stack.imgur.com/lm1Ey.png

Однако, если я увеличу длину имени файла до 14 символов ("檢 檢 檢 檢 檢 檢 檢 檢 檢 檢 檢 檢 檢"), что-то пойдет не так, и имя файла появится в Outlookкак если бы оно было неправильно закодировано:

http://i.stack.imgur.com/gvNMV.png

В любом случае содержимое вложения не повреждено ("我 希望 這個 作品。").Затрагивается только имя вложения.

Ясно, что здесь я нахожу какое-то ограничение ... Может кто-нибудь сказать мне, что я делаю неправильно?

Обновить: Проблема возникает независимо от того, является ли клиент Gmail или Outlook 2010. Однако, когда клиентом является Gmail и имя файла> 13 символов, вложение также появляется в теле сообщения:

http://i.stack.imgur.com/DYtCN.png

1 Ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...