zoukankan      html  css  js  c++  java
  • [Solution]

    业务需求

    使用 .Net 服务发送的邮件,如何统计打开率?

    解决方案

    在邮件中附加一张图片,图片 src 路径为 .Net WebAPI 提供的图片资源。
    当图片加载时,可以传递参数进行数据分析。

    注意事项

    图片资源为 HTTPS 路径可以直接加载使用;
    如果为 HTTP 路径则会被邮件进行默认替换。

    代码范例

    [HttpGet]
    [AllowAnonymous]
    [Route("SendTestNewsLetter")]
    public async Task SendTestNewsLetter(string mailToAddress)
    {
        var gid = Guid.NewGuid();
        var imgUrl = $"{UtoolsWebAPIUrl}/api/Vendor/GetNewLetterImage?gid={gid}";
        var htmlBody = @"<!DOCTYPE html>
                            <html>
                            <body>
                                <img src='" + imgUrl + @"' alt='Test image' />
                                <h2>NewsLetter mail body text</h2>
                            </body>
                            </html>";
        await NetEase163MailHelper.SendMail($"Newsletter mail subject - {gid}", htmlBody, mailToAddress);
    }
    
    [HttpGet]
    [AllowAnonymous]
    [Route("GetNewLetterImage")]
    public IActionResult GetNewLetterImage(string gid)
    {
        _logger.LogDebug($"SaveTestNewsLetterStatus, gid_image={gid}");
        var image = System.IO.File.OpenRead("Content/dining.png");
        return File(image, "image/jpeg");
    }

    使用效果

    Web Mail 可以直接请求图片资源,获取到邮件参数;
    在 PC Outlook 中需要手工允许图片资源下载。

    参考资料

    https://stackoverflow.com/a/40794444/13501202

  • 相关阅读:
    模块的搜索路径
    循环导入问题
    模块的四种形式
    匿名函数
    面向过程编程
    内置函数
    名称空间和作用域
    函数嵌套
    函数对象
    可变长参数
  • 原文地址:https://www.cnblogs.com/jinzesudawei/p/13664351.html
Copyright © 2011-2022 走看看