У меня проблема при отправке файла вложения, содержащего арабские c символы, которые отображаются как ???? для имени файла. Однако эта проблема не появляется, если имя файла Engli sh. Я пытался использовать UTF-8 для кодирования, но не работал.
private static void GenerateAndSendMail(string subject, string body, List<string> filesFullPath = null)
{
try
{
var mailMessage = new MailMessage();
mailMessage.From = new MailAddress(MyAppConfigService.CurrentUser.Email);
mailMessage.Subject = subject;
mailMessage.IsBodyHtml = true;
mailMessage.Body = body;
mailMessage.SubjectEncoding = Encoding.Unicode;
mailMessage.HeadersEncoding = Encoding.Unicode;
mailMessage.BodyEncoding = Encoding.Unicode;
if (filesFullPath != null && filesFullPath.Count > 0)
{
foreach (var item in filesFullPath)
{
var Attachment = new Attachment(item);
Attachment.NameEncoding = Encoding.Unicode;
mailMessage.Attachments.Add(Attachment);
}
}
//save the MailMessage to the filesystem
var filename = Path.GetTempPath() + "mymessage.eml";
mailMessage.Save(filename);
//Open the file with the default associated application registered on the local machine
Process.Start(filename);
}
catch (Exception ex)
{
throw ex;
}
}