将 Word 文档作为附件附加 - 路径规范 ASP.NET MVC 3

Posted

技术标签:

【中文标题】将 Word 文档作为附件附加 - 路径规范 ASP.NET MVC 3【英文标题】:Attaching Word Document as an Attachment - Path Specification ASP.NET MVC 3 【发布时间】:2013-07-03 23:21:01 【问题描述】:

我需要在电子邮件中附加一个 Word 文档。

文档存储在解决方案中的一个名为“附件”的文件夹中

问题

我想知道我需要使用什么路径才能将 Word 文档附加到电子邮件中,并且想知道我是否正确附加了它。

这是我的做法:

string fileName = "~/Attachments/worddocument.doc";
MailMessage mail = new MailMessage
    
        Sender = new MailAddress(this.SenderAddress, this.SenderName),
        From = new MailAddress(this.FromAddress, this.FromName),
        ReplyToList =  new MailAddress(this.ReplyToAddress, this.ReplyToName) ,
        IsBodyhtml = this.isBodyHtml,
        Subject = this.UserSubject,
        Attachments.Add(new Attachment(fileName, MediaTypeNames.Application.Octet));
     ;

看起来怎么样?我是否正确指定了路径?

谢谢

【问题讨论】:

我们怎么知道?它有效吗?如果没有,错误是什么? 我现在没有数据访问权限,所以我现在无法调试它。我要问的是我是否正确指定了路径。简单的问题,但我在 MSDN 上找不到任何示例。 我给你的唯一答案是:也许。这可能是一条合法路径,但我不知道它是否是正确的合法路径。 你应该再读一遍这个问题。解决方案中引用文件夹的正确方法只有一种 【参考方案1】:

Attachment 需要一个绝对路径。

您可以使用

将虚拟路径转换为绝对路径
var absolutePath = Server.MapPath("~/Attachments/worddocument.doc")

并附上

Attachments.Add(new Attachment(absolutePath, MediaTypeNames.Application.Octet));

如果要检查虚拟目录中的文件是否存在,使用

if (File.Exists(absolutePath))
...

【讨论】:

以上是关于将 Word 文档作为附件附加 - 路径规范 ASP.NET MVC 3的主要内容,如果未能解决你的问题,请参考以下文章

提取Word文档中的Excel附件并识别文件名保存

将包含代码的 Excel 文件作为附件发送

为啥用QQ邮箱通过附件传word文档里添加的照片说无法显示链接的图像

Lotus Notes电子邮件作为另一封电子邮件的附件

附加到电子邮件后删除文档

freemarker导出wordword转pdf,带附件图片等比缩放