繁体   English   中英

通过 C# 发送带有签名的邮件

[英]Sending emails with signatures via C#

我有以下设置从我的 c# 应用程序发送电子邮件:

  • SmtpClient(在 System.Net.Mail 命名空间下)在一切就绪后进行实际发送,并将消息 object 的“IsBodyHtml”属性设置为 True

  • 使用 Sautinsoft 的dll ,我转换了一个简单的 rtf 文件,其中包含 email 的格式,并将其转换为 HTML 字符串,然后我将其用作邮件正文。

它工作得很好,我已经给自己发了几封测试邮件,所有适当的格式都被保留了下来。 但是我遇到了图像问题 - dll 将图像转换为 img 标签并使用图像的 base 64 格式作为数据源,如果您将其视为 html 页面但将其作为正文发送则效果很好你email出问题了。 Email 客户端(例如 Yahoo)不介意嵌入图像,但 Gmail 不适合使用此方法。 我发送的电子邮件中应该出现的唯一图像是位于每个 email 底部的签名图像。在浏览器中使用本机 Gmail 客户端中的签名不会造成任何问题,因为该图像具有指向实际文件的链接服务器某处,但通过 C# 应用程序发送带有签名的电子邮件似乎是另一回事。 有什么建议么?

感谢您的时间。

如果您谈论的是 RTF2HTML,您可以在单独的文件夹中添加任何图像(不包含在 HTML 正文中):

string inpFile = @"..\..\..\..\example.docx";
        string outFile = Path.GetFullPath(@"Result2.html");
        string imgDir = Path.GetDirectoryName(outFile);

        RtfToHtml r = new RtfToHtml();

        // Set images directory
        HtmlFixedSaveOptions opt = new HtmlFixedSaveOptions()
        {
            ImagesDirectoryPath = Path.Combine(imgDir, "Result_images"),
            ImagesDirectorySrcPath = "Result_images",
            // Change to store images as physical files on local drive.
            EmbedImages = false
        };

        try
        {
            r.Convert(inpFile, outFile, opt);
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Conversion failed! {ex.Message}");
        }

结果,您将在文件夹中看到带有链接图像的 HTML 文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM