2012-05-04 3 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이나 핫메일과 같은 완전히 다른 제공 업체)로 보내보십시오. 수신 메일 서버 때문에 기분이 좋습니다! – banging

답변

0

첨부 파일 클래스는은 MailMessage 클래스와 함께 사용됩니다. 모든 메시지 에는 본문 내용이 들어있는 본문이 포함됩니다. 추가 본문에 추가 파일을 보낼 수도 있습니다. 이러한 파일은 첨부 파일로 으로 전송되며 첨부 인스턴스로 표시됩니다. 첨부 파일을 메일 메시지에 추가하려면 MailMessage.Attachments 컬렉션에 추가하십시오.

첨부 파일 내용은 문자열, 스트림 또는 파일 이름이 될 수 있습니다. 첨부 파일 중 하나를 사용하여 첨부 파일의 콘텐츠를 지정하면 수 있습니다.

첨부 파일의 MIME Content-Type 헤더 정보는 ContentType 속성으로 표시되는 입니다. Content-Type 헤더 은 미디어 유형과 하위 유형 및 모든 관련 매개 변수를 지정합니다. ContentType을 사용하여 첨부 파일과 연결된 인스턴스를 가져옵니다.

MIME Content-Disposition 헤더는 ContentDisposition 속성으로 표시됩니다. Content-Disposition 헤더는 첨부 파일의 프레젠테이션 및 파일 타임 스탬프를 으로 지정합니다. A 첨부 파일이 파일 인 경우에만 내용 처리 헤더가 전송됩니다. 첨부 파일이있는 인스턴스를 가져 오려면 ContentDisposition 속성을 사용하십시오.

MIME Content-Transfer-Encoding 헤더는 TransferEncoding 속성으로 표시됩니다.

Here is the source

귀하의 솔루션이 MSDN 링크입니다. MIME Content-Type을 시도해야합니다.

+0

files [i]는 문자열이며 파일 경로입니다. 새로운 첨부 파일 (filepath, filename)과 같은 것은 없습니다. att.Name을 설정하여 파일의 이름을 바꾸려고합니다. 또한 이것을 "myride.tcx"로 설정하려고 시도했으며 .xml을 계속 추가했습니다. – JurgenStillaert

+0

Thx, 실제로 contenttype입니다 : ContentType ct = new ContentType ("application/vnd.garmin.tcx + xml") – JurgenStillaert