目前我刚刚创建了一个可以发送.xls文件的程序,我使用了google smtp服务器,所以我已经可以在我的程序中用该服务器发送电子邮件了。在我的程序中,基于我的日期,我可以使用今天的日期和时间创建.xls文件。我想知道的是这个文件将被用作电子邮件的附件。我怎么能这样做?
目前我的文件名是DateTime.Now.ToString("yyyyMMdd_hhss") + ".xls"
,因此我可以根据今天的日期和时间进行创建。我如何检索用作电子邮件附件的文件名?
答案 0 :(得分:0)
我假设您使用的是System.Net.Mail
命名空间中的.NET默认Emal api。
您可以将文件作为attachment添加到System.Net.Mail.MailMessage
对象。
System.Net.Mail.Attachment
类接受一个构造函数,该构造函数可以获取您可能用于创建xls文件的流。因此,如果您动态创建excel文件,您可能已经引用了写入它的流。然后你需要使用下面的代码:
using (Stream myXlsFileStream = new MemoryStream())
{
// assumig you populate the stream like this...
WriteXlsToStream(myXlsFileStream);
myXlsFileStream.Flush();
MailMessage message = new MailMessage();
// configure mail message contents ...
using (Attachment xlsAttachment = new Attachment(
myXlsFileStream,
"FileNameToAppearInEmail.xls",
"application/xls"))
{
message.Attachments.Add(xlsAttachment);
// send the message
}
}
请注意,不得关闭流,并且应该已将所有数据写入其中。在添加附件之前,您可能需要调用myXlsFileStream.Flush()
(如上面的代码所示),以确保文件完全写入。