热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在mail的正文显示图片

最近看到很多人在问这个问题.就是如何在Mail的正文中如何显示附件的图片?本人也不会就去网上搜索.可是网上竟然没有(可能是太简单,很多人不屑提供代码),于是本人就尝试.最先想到的就
最近看到很多人在问这个问题.就是如何在Mail的正文中如何显示附件的图片?本人也不会就去网上搜索.可是网上竟然没有(可能是太简单,很多人不屑提供代码),于是本人就尝试.
     最先想到的就是outLook可以显示附件中的图片.于是在OutLook的邮件正文:右键->ViewSource 就看到了
1<img width&#61;560 height&#61;420 id&#61;"_x0000_i1025"
2src&#61;"cid:image001.jpg&#64;01C8C4AF.C7E6ED20">
这种代码 所以产生的第一个想法就是在写正文的时候,自动根据附件去生成类似代码.说干就干,马上动手!
    新建一个网站,拖几个FileUpload 上去.如下图


根据MicroSoft自带的System.Net.Mail 组件,完成发送方法,代码如下
 1using System;
 2using System.Collections.Generic;
 3using System.Text;
 4using System.Net.Mail;
 5using System.Net;
 6using System.IO;
 7namespace STS.MailSystem.Common
 8{
 9    public class QMail
10    {
11        /**//// 
12        /// 描述:Email发送通用函数
13        /// 

14        /// 发件人
15        /// 收件人(多个收件人以逗号隔开)
16        /// 主题
17        /// 内容
18        /// 附件
19        /// 

20        public string MailSend(string from, string to, string cc, string subject, string text, Attachment attch, string priority)
21        {
22            MailMessage message &#61; new MailMessage(from, to);
23            message.CC.Add(cc);
24            message.Subject &#61; subject;
25            message.Body &#61; text;
26            
27
28            //message.CC.Add(new MailAddress(from)); //超送给自己
29            //message.Bcc.Add(new MailAddress(""));
30
31            if (attch !&#61; null)
32            {
33                Attachment data &#61; attch;
34                message.Attachments.Add(data);
35            }

36
37            message.BodyEncoding &#61; System.Text.Encoding.UTF8;//编码方式
38            switch (priority.ToUpper())
39            
40                case "HIGH":
41                    message.Priority &#61; MailPriority.High;//优先级
42                    break;
43                case "NORMAL":
44                    message.Priority &#61; MailPriority.Normal;//优先级
45                    break;
46                case "LOW":
47                    message.Priority &#61; MailPriority.Low;//优先级
48                    break;
49                default:
50                    message.Priority &#61; MailPriority.Normal;//优先级
51                    break;
52            }

53            
54            message.IsBodyHtml &#61; true;//是否是html格式
55            SmtpClient client &#61; new SmtpClient();//不同情况更改
56
57            //client.Credentials &#61; CredentialCache.DefaultNetworkCredentials;//匿名认证
58            
59            
60            try
61            {
62                client.Send(message);
63                return "1";
64            }

65            catch (Exception e)
66            {
67                
68                return e.Message;
69            }

70            
71        }

72
73        
74
75    }

76}

77
78

然后看看我们的前台代码
 1using System;
 2using System.Data;
 3using System.Configuration;
 4using System.Web;
 5using System.Web.Security;
 6using System.Web.UI;
 7using System.Web.UI.WebControls;
 8using System.Web.UI.WebControls.WebParts;
 9using System.Web.UI.HtmlControls;
10using System.Net.Mail;
11using STS.MailSystem.Common;
12using System.Text;
13
14    public partial class _Default : System.Web.UI.Page
15    {
16        protected void Page_Load(object sender, EventArgs e)
17        {
18
19        }

20        protected void Button1_Click(object sender, EventArgs e)
21        {
22            QMail mail &#61; new QMail();
23
24            Attachment attachment &#61; null;
25            //File Name
26            string fileName &#61; string.Empty;
27            string filePath &#61; string.Empty;
28            StringBuilder mailBody &#61; new StringBuilder();
29            //mailBody.Append("content-type:base64");
30            //mailBody.Append("content-transfer-encodinf:");
31            //mailBody.Append("content-disposition:inline");
32            //mailBody.Append("filename:aa");
33            //增加附件
34            //这里指去考虑附件是图片的情况.
35            //其他情况不考虑
36            if (File1.Value !&#61; "")
37            {
38                filePath &#61; this.File1.PostedFile.FileName;
39                fileName &#61; filePath.Substring(filePath.LastIndexOf("\\"&#43; 1);
40                //增加显示图片
41                mailBody.Append("content-id:" &#43; fileName);
42                mailBody.Append("" &#43; fileName&#43;"&#39; />");
43                attachment &#61; new Attachment(filePath);              
44            }
         
45
46
47            //Send Mail
48            mail.MailSend("minqiang.zhang&#64;metinform.cn""minqiang.zhang&#64;metinform.cn",
49                "minqiang.zhang&#64;metinform.cn""演示如果在正文显示附件", mailBody.ToString(), attachment, "");
50
51        }

52    }

53
54

写完之后,点击发送,我靠!真的可以也.
     代码其实很简单我们来总结一下:
     这里最重要的东西是在正文中如何使用Img显示附件中的图片,从代码中我们可以看到content-id:附件中图片名字的方案解决的.
以上是自己方法,如果谁有更好的方法请贴出来,大家共享!
声明:由于代码是简单测试是否可以在附件中显示附件,所以代码写的很乱.大家看思路就行了.

转:https://www.cnblogs.com/mqcan/archive/2008/06/02/1212157.html



推荐阅读
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • This article discusses the efficiency of using char str[] and char *str and whether there is any reason to prefer one over the other. It explains the difference between the two and provides an example to illustrate their usage. ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • switch语句的一些用法及注意事项
    本文介绍了使用switch语句时的一些用法和注意事项,包括如何实现"fall through"、default语句的作用、在case语句中定义变量时可能出现的问题以及解决方法。同时也提到了C#严格控制switch分支不允许贯穿的规定。通过本文的介绍,读者可以更好地理解和使用switch语句。 ... [详细]
author-avatar
耿世述_511
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有