Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中设置电子邮件附件名称#_C#_Email_Attachment_Email Attachments - Fatal编程技术网

C# 在C中设置电子邮件附件名称#

C# 在C中设置电子邮件附件名称#,c#,email,attachment,email-attachments,C#,Email,Attachment,Email Attachments,我添加了如下附件: System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(AttachmentPath); msg.Attachments.Add(attachment); 但是我想让它附加为一个不同的名称,实际的文件名很长,而且令人困惑。我希望它附加为“file.txt”,有没有一种简单的方法可以做到这一点,而不必复制文件?怎么样: System.Net.Mail.Attachment att

我添加了如下附件:

System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(AttachmentPath);   
msg.Attachments.Add(attachment);   
但是我想让它附加为一个不同的名称,实际的文件名很长,而且令人困惑。我希望它附加为“file.txt”,有没有一种简单的方法可以做到这一点,而不必复制文件?

怎么样:

System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(attachmentPath);
attachment.Name = "file.txt";  // set name here
msg.Attachments.Add(attachment);

您需要从流中加载附件,然后可以为其指定名称和媒体类型

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

这就是我的工作原理:attachment.ContentDisposition.FileName=“file.txt”;