图像在发送Base64编码的电子邮件时被修剪

时间:2015-11-24 07:01:15

标签: java c#

我正在使用java web服务和c#客户端。我已经在Base64 / jpeg格式中嵌入了图像。不幸的是,Lotus Notes(电子邮件客户端)中收到的图像(嵌入在邮件中)正在被修剪。

在我使用Alternateview(在c#中)之前,它工作正常且完美地显示图像。 但现在我修改了代码并在邮件正文中使用了Base64 / Jpg转换。

        string base64String = null;
        var matches = Regex.Matches(html, @"<img[^>]*?src\s*=\s*([""']?[^'"">]+?['""])[^>]*?>", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline);
        foreach (Match match in matches)
        {
            string src = match.Groups[1].Value;
            src = src.Trim('\"');
            using (System.Drawing.Image image = System.Drawing.Image.FromFile(src))
            {
                if (File.Exists(src))
                {
                    var ext = Path.GetExtension(src);
                    if (ext.Length > 0)
                    {
                        ext = ext.Substring(1);
                        using (MemoryStream m = new MemoryStream())
                        {
                            image.Save(m, image.RawFormat);
                            byte[] imageBytes = m.ToArray();
                            base64String = Convert.ToBase64String(imageBytes);
                            src = string.Format("'data:image/{0};base64,{1}'", ext, base64String);
                            html = html.Replace(match.Groups[1].Value, src);
                            // return base64String;
                        }
                    }
                }
            }

`

请帮助。

PS ::抱歉我的英语不好。!!

EDIT ::

添加测试邮件正文(也添加了标记)

Test Mail

0 个答案:

没有答案