none
请教使用SmtpClient类发送邮件的问题 RRS feed

  • 问题

  • 我想用SmtpClient给对方发邮件,邮件包含图片附件,而我希望邮件的正文里面能够直接显示这幅图片,而不是作为附件列出来,即对方收到之后打开邮件看正文的时候就能看到图片。

    我尝试给MailMessage.Body设置html格式的正文,但是图片是附加在邮件本身的,这个图片的地址应该怎么写呢?

    <p>我是正文,请看这个图片:</p>

    <img src="这个地址怎么写?"/>


    da jia hao!

    2018年3月14日 6:43

全部回复

  • 轉成 base64 試試看
    2018年3月14日 16:08
  • src既可以用base64,也可以用互联网上的图片地址,比如您的头衔图片

    <img src="https://i1.social.s-msft.com/profile/u/avatar.jpg?displayname=liubin&size=extralarge&version=00000000-0000-0000-0000-000000000000">


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2018年3月15日 0:51
  • 你是说把整副图片转为base64格式吗?图片较大的时候,会不会有问题啊。。。

    da jia hao!

    2018年3月15日 6:40
  • Hi,

    感谢你在MSDN论坛发帖。

    如果你的问题解决了,请及时标记有用的回复作为答案,这样会帮助遇到相同问题的人。

    Best Regards,

    Hart


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年3月28日 7:40
    版主
  • 将图片内容转成base64代码放在src属性里面,并不是mime邮件的标准处理方式,况且如果图片较大,转换出来的base64代码也会很惊人。

    我查了一下mime邮件的标准协议,有一个“内嵌资源”的处理方式,结合我接收到的一些邮件的mime源代码,如下:

    上图是邮件正文的一部分(就是一张图片),这里是定义了一个“Content-ID”,然后在邮件的另外一个字段里面,有这个id的图片定义:

    也就是说,在显示邮件正文的时候,会根据Content-ID到内嵌资源里面找到这个id对应的资源,然后显示。

    所以现在的问题就是,如何将我的邮件以这种格式的数据发送出去?

    找遍了SmtpClient的帮助也没看到有“内嵌资源”的帮助。。。。。。


    da jia hao!

    2018年4月16日 7:39