• 以邮件附件的方式发送二进制数据流


    用户需求:用户希望在系统上有个界面发邮件,发的内容为填写的邮件内容+数据库中附件表对应的附件

    附件:附件在数据中为二进制流.

    附件表字段:ATT_ID(流水号) ATT_NAME(文件名如test.jpg,xxx.doc),ATT_CONTENT(附件内容byte[])

    查了一下网上的文章,都是在硬上的文章,测了一下,在硬盘上的可以发送成功.于是考虑以下解决方法

    1. 直接从数据库读出数据流做为附件发送(最佳方法)
    2. 先保存到硬盘上再以附件发送(替代方法)

      protected void btnSend_Click(object sender, EventArgs e)
            {
               //获取附件列表

        List<MyAttachment> li = new MyAttachment().GetItems(); 

                MailMessage message = new MailMessage();
                message.From = new MailAddress(xxx@126.com);
                message.To.Add(xxx@126.com);
                message.Subject = "test";
                message.Body = "testbody";

                foreach (MyAttachment myAtt in li)
                {
                    System.IO.Stream s = this.ReturnPhoto(myAtt.Content);
                    System.Net.Mail.Attachment att = new System.Net.Mail.Attachment(s, myAtt.Name);
                    message.Attachments.Add(att);
                }
                message.IsBodyHtml = true;
                SmtpClient client = new SmtpClient("192.168.0.1");
                client.Send(message);
            }

          

       //把byte[]转成stream
            public System.IO.MemoryStream ReturnPhoto(byte[] streamByte)
            {
                System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
                //System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
                return ms;
            }

     测试OK.

  • 相关阅读:
    算法---递归及尾递归
    ScheduledThreadPoolExecutor之remove方法
    数据结构---队列及简单实现有界队列
    数据结构---栈及四则运算实现
    数据结构---链表及约瑟夫环问题带来的思考
    数据结构---数组
    时间复杂度和空间复杂度
    Redis缓存设计与性能优化
    Springboot+ELK实现日志系统简单搭建
    Docker学习笔记(三):Dockerfile及多步骤构建镜像
  • 原文地址:https://www.cnblogs.com/sportdog/p/2735710.html
Copyright © 2020-2023  润新知