2012-05-04 2 views
1

Мне нужно отправить несколько файлов на адрес электронной почты. Файлы должны иметь расширение .tcx. Это фактически xml-файлы (журналы велосипеда Garmin).Приложение System.net.mail получает расширение .xml-файла

По-видимому, когда получатель получает электронное письмо, прикрепление называется xxxxx.tcx.xml. Как я могу заставить почтовую программу не изменять имя файла вложения?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Net.Mail; 
using System.IO; 

namespace stravamailer 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      var files = Directory.GetFiles("E:\\JurgenS\\Downloads\\allrides"); 

      for (int i = 0; i < files.Length; i++) 
      { 
       MailMessage oMail = new MailMessage(); 
       oMail.Body = ""; 
       oMail.From = new MailAddress("[email protected]","Jurgen Stillaert"); 
       oMail.Subject = ""; 
       oMail.To.Add(new MailAddress("[email protected]")); 
       Attachment att = new Attachment(files[i]); 
       att.Name = Path.GetFileName(files[i]); 
       oMail.Attachments.Add(att); 

       SmtpClient oSmtp = new SmtpClient("uit.telenet.be"); 
       oSmtp.Send(oMail); 
      } 
     } 
    } 
} 
+0

Попробуйте отправить его на другой адрес электронной почты (совершенно другой провайдер, например gmail или hotmail), чтобы узнать, переименовано ли вложение. Я чувствую, что это из-за получающего почтового сервера! – banging

ответ

0

Класс Attachment используется с классом MailMessage. Все сообщения включают в себя Тело, содержащее содержание сообщения. Кроме того, в тело, вы можете отправить дополнительные файлы. Они отправляются в качестве вложений и представлены как экземпляры вложения. Чтобы добавить прикрепленное к сообщению сообщение , добавьте его в коллекцию MailMessage.Attachments .

Содержимое прикрепленного файла может быть строкой, потоком или именем файла. Вы можете указать содержимое в приложении, используя любое из вложений .

Информация заголовка MIME Content-Type для вложения - , представленная свойством ContentType. Заголовок Content-Type определяет тип и подтип носителя и любые связанные с ним параметры. Используйте ContentType, чтобы получить экземпляр, связанный с вложением.

Заголовок MIME Content-Disposition представлен как свойство ContentDisposition. Заголовок Content-Disposition указывает метки времени представления и файла для вложения. A Заголовок Content-Disposition отправляется только в том случае, если вложение является файлом. Используйте свойство ContentDisposition, чтобы получить связанный с экземпляром с приложением.

Заголовок MIME Content-Transfer-Encoding представлен свойством TransferEncoding .

Here is the source

Ваше решение в этой ссылке MSDN. вы должны попробовать MIME Content-Type.

+0

Файлы [i] - это строка: путь к файлу. Нет ничего лучше нового Attachment (filepath, filename). Я пытаюсь переименовать файл, установив att.Name. Я также попытался установить это на «myride.tcx», и он продолжает добавлять .xml. – JurgenStillaert

+0

Thx, это было действительно contenttype: ContentType ct = new ContentType ("application/vnd.garmin.tcx + xml") – JurgenStillaert

Смежные вопросы