2012-05-04 28 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

添付クラスはMailMessageクラスに使用されます。すべてのメッセージ には、メッセージの内容を含む本文が含まれています。さらに本体に を追加すると、追加のファイルを送信することができます。これらは添付ファイルとして として送信され、添付ファイルインスタンスとして表されます。添付ファイル をメールメッセージに追加するには、MailMessage.Attachments コレクションに追加します。

添付ファイルのコンテンツは、文字列、ストリーム、またはファイル名にすることができます。アタッチメント コンストラクタのいずれかを使用して、添付ファイルの内容を指定することができます。

添付ファイルのMIME Con​​tent-Typeヘッダー情報は、ContentTypeプロパティで表される です。 Content-Typeヘッダ は、メディアタイプとサブタイプ、および関連するパラメータを指定します。 ContentTypeを使用して、添付ファイルに関連付けられたインスタンスを取得します。

MIME Con​​tent-Dispositionヘッダーは、 ContentDispositionプロパティで表されます。 Content-Dispositionヘッダーは、添付ファイルのプレゼンテーションとファイルのタイムスタンプを と指定します。 A 添付ファイルがファイルの場合にのみContent-Dispositionヘッダーが送信されます。 添付ファイル付きの に関連付けられたインスタンスを取得するには、ContentDispositionプロパティを使用します。

MIME Con​​tent-Transfer-Encodingヘッダーは、 TransferEncodingプロパティで表されます。

Here is the source

あなたのソリューションは、このMSDNのリンクです。 MIME Con​​tent-Typeを試してください。

+0

ファイル[i]は文字列で、ファイルのパスです。 新しいAttachement(filepath、filename)のようなものはありません。 att.Nameを設定してファイルの名前を変更しようとしています。私もこれを "myride.tcx"に設定しようとしましたが、それは.xmlを追加し続けます。 – JurgenStillaert

+0

Thx、それは本当にcontenttypeでした:ContentType ct = new ContentType( "application/vnd.garmin.tcx + xml") – JurgenStillaert

関連する問題