Удаление пути к файлу из имени вложения при использовании MailMessage - PullRequest
0 голосов
/ 23 марта 2011

Я пытаюсь отправить вложение, используя класс MailMessage.

var attachment = new Attachment(ConfigurationManager.AppSettings["pathToPDFs"] + pdfItem.Value);
mailMessage.Attachments.Add(attachment);

Это добавляет файл в качестве вложения, но когда я получаю файл на свой адрес электронной почты, имя будет

//Inetpub//Path//To//pdf//name.pdf это должно быть просто name.pdf.

Где я ошибаюсь?

ConfigurationManager.AppSettings["pathToPDFs"] установлено как C://Inetpub//Path//To//pdf// pdfItem.Value name.pdf

Ответы [ 3 ]

1 голос
/ 23 марта 2011

Сначала я должен признаться, наверное.

Конструктор может использовать полный путь в качестве имени. Если вы устанавливаете свойство name после создания объекта, если оно может работать.

var attachment = new Attachment(ConfigurationManager.AppSettings["pathToPDFs"] + pdfItem.Value); 

attachment.Name = pdfItem.Value;

mailMessage.Attachments.Add(attachment);
1 голос
/ 23 марта 2011

Когда вы получаете вложение электронной почты, это правильное вложение?

То есть вы действительно получаете name.pdf?

Кроме того, ваше местоположение должно быть: C:\\inetpub\\path\\to\\pdf\name.pdf

Вы пробовали жестко запрограммировать местоположение файла и посмотреть, решит ли это вашу проблему?

0 голосов
/ 03 июля 2015

Я столкнулся с той же проблемой, и позже обнаружил, что это потому, что я использовал относительный путь к файлу, то есть ../../name.pdf.Если я получу полный путь для создания вложения, то имя файла вложения в письме не будет содержать путь.

string full_file_name = Path.GetFullPath("../../name.pdf");
Attachment attachment = new Attachment(full_file_name);
mailMessage.Attachments.Add(attachment);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...