48

I add an attachment like this:

System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(AttachmentPath);   
msg.Attachments.Add(attachment);   

But I want to make it attach as a different name, the actual file name is very long and confusing I would like it to attach as "file.txt", is there an easy way to do this without having to make a copy of the file?

3 Answers 3

86

How about:

System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(attachmentPath);
attachment.Name = "file.txt";  // set name here
msg.Attachments.Add(attachment);
Sign up to request clarification or add additional context in comments.

1 Comment

This is what worked for me: attachment.ContentDisposition.FileName = "file.txt";
7

You need to load the attachment from a stream and then you can give it a name and a media type.

var fs = new FileStream("attachmentPath", FileMode.Open);
var attachment = new System.Net.Mail.Attachment(fs, "MyAttachmentName.txt", "text/text");

Comments

0
var attachment = new Attachment(path){
    Name = "File Name"
};
msg.Attachments.Add(attachment);

So what I did was basically to create the attachment and add the name in the initialization.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.