如何通过邮件发送MemoryStream纯文本消息C#

如何通过邮件发送MemoryStream纯文本消息C#,c#,email,attachment,memorystream,C#,Email,Attachment,Memorystream,我正在尝试将日志文件附加到我的邮件,但我没有收到任何内容。这是我的例子。我做错了什么?我可以看到我的文件log.txt已创建并放置在路径中,但如果我尝试附加此部分,它不会发送电子邮件 private void AssignAttachment(MailMessage msg, DataTable dt, StreamReader streamreader) { FileStream fs = (FileStream)streamreader.BaseStream; string

我正在尝试将日志文件附加到我的邮件,但我没有收到任何内容。这是我的例子。我做错了什么?我可以看到我的文件log.txt已创建并放置在路径中,但如果我尝试附加此部分,它不会发送电子邮件

private void AssignAttachment(MailMessage msg, DataTable dt, StreamReader streamreader)
{
    FileStream fs = (FileStream)streamreader.BaseStream;
    string file = "c:\\temp\\log.txt";
    using (StreamWriter sw = new StreamWriter(file, false, Encoding.GetEncoding("UTF-8")))
    {
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            //Testing. Col 0 = string results
            sw.WriteLine(dt.Rows[i][0]);
        }
    }

    MemoryStream ms = new MemoryStream();
    using (FileStream fileStream = File.OpenRead(file))
    {
        ms.SetLength(fileStream.Length);
        fileStream.Read(ms.GetBuffer(), 0, (int)fileStream.Length);
    }

    //MailMessage msg = new MailMessage();
    //msg is well-configured email. Sends emails if I don't attach anything
    msg.Attachments.Add(new Attachment(ms,file, System.Net.Mime.MediaTypeNames.Text.Plain);
}
private void AssignAttachment(MailMessage msg、DataTable dt、StreamReader StreamReader)
{
FileStream fs=(FileStream)streamreader.BaseStream;
string file=“c:\\temp\\log.txt”;
使用(StreamWriter sw=newstreamwriter(file,false,Encoding.GetEncoding(“UTF-8”))
{
对于(int i=0;i
由于
附件
作为第一个参数,因此您应该能够指定
文件流
,而不是
内存流
。这将消除对中间流的需要,并允许流式上载,而不是将整个文件加载到内存中


当您在写入文件后打开文件进行读取时,只需将该流传递到
附件
构造函数。

您是否收到任何错误?它们是什么?