与 Outlook 相比,使用 SMTP 类发送电子邮件的电子邮件大小奇怪增加

Posted

技术标签:

【中文标题】与 Outlook 相比,使用 SMTP 类发送电子邮件的电子邮件大小奇怪增加【英文标题】:Strange increase in email size using SMTP class to send an email as opposed to outlook 【发布时间】:2011-01-02 02:00:00 【问题描述】:

我正在发送带有附件的电子邮件 使用以下代码

Dim msg As New System.Net.Mail.MailMessage(req.EmailFrom, req.EmailTo)
            Dim att As New System.Net.Mail.Attachment("C:\Documents and Settings\michaelr\Desktop\1216259.pdf")
            With msg
                .Attachments.Add(att)
                .Body = req.EmailBody
                .Subject = req.EmailSubject
            End With
    Dim client As New System.Net.Mail.SmtpClient()
            client.Host = PDFService(Of T).mSMTPServer
            client.Send(msg)

附件文件大小为396KB,收件人收到邮件outlook 显示文件大小为 543Kb。 奇怪的是,如果我使用 Outlook 发送带有相同附件的电子邮件,文件大小为 396KB。

我了解由于附件采用 base 64 编码,文件大小可能会增加 而不仅仅是原始二进制文件。

我没有看到的是为什么 Outlook 发送一个大小为 396KB 的文件但在代码中 发送它,相同的文件是543Kb。

任何帮助将不胜感激并获得一个大的绿色勾号。

【问题讨论】:

【参考方案1】:

对我来说,这种增加看起来像是 MIME 编码的开销

【讨论】:

【参考方案2】:

这里有一个猜测:Outlook 可能会对附件执行某种压缩,或者可能使用比内置 MailMessage 类更有效的编码机制。

更新:看起来 Outlook 使用专有编码机制:http://support.microsoft.com/kb/290809

【讨论】:

专有编码在创建富文本电子邮件时打开,但情况并非如此。我有一种感觉,Outlook 正在做一些 MailMessage 类没有做的事情。大小上的差异几乎与您使用 Mime 类型编码所期望的增加大小相同。这让我想知道是否有什么东西,我可以在课堂上或在交流方面使用,可以做类似的事情。

以上是关于与 Outlook 相比,使用 SMTP 类发送电子邮件的电子邮件大小奇怪增加的主要内容,如果未能解决你的问题,请参考以下文章

通过 Python 发送 Outlook 电子邮件?

使用 ActionMailer 和 Outlook/Mandrillapp SMTP 服务器发送邮件

通过 Outlook 的 smtp 服务器发送电子邮件

如何使用 Outlook 2010(无 smtp)和 python 发送带有嵌入图像(不是附件)的 HTML 格式电子邮件

使用带有 Laravel 的 Outlook / Office365 发送电子邮件 - 无法在 SMTP 服务器上进行身份验证

Microsoft Office Outlook 2003中如何设置foxmail.com