配置自定义SSL转发代理以在Sendgrid中单击跟踪电子邮件

作者 : IT 大叔 本文共2057个字,预计阅读时间需要6分钟 发布时间: 2020-11-6

当您将Sendgrid电子邮件设置为具有品牌链接时,也就是说,mail from客户在收到来自您的电子邮件时看到的,则类似发件人:bob@yourdomain.com,然后,要启用电子邮件的点击跟踪,您需要在将跟踪请求发送到Sendgrid(位于sendgrid.net)之前,通过SSL转发代理传递请求。该代理必须位于您的自定义域下或其子域中。

在本文中,我将向您展示如何设置自定义SSL配置以启用对Sendgrid中品牌链接的点击跟踪。

我之所以这样写是因为,在为我们的JSON API服务(Jornalia,一个针对阿根廷来源的新闻聚合API)配置点击跟踪时,关于该主题的Sengrid官方文档还不够清晰,特别是对于不太熟悉网络的人们和系统管理。

我假设:

  1. 您对Unix Shell有所了解
  2. 您正在服务器实例上使用Ubuntu Server 20.04。
  3. 您已经安装NGINX的NodeJS您的服务器上。
  4. 您已经验证了您的自定义域,以在Sendgrid上标记您的链接。如果尚未执行此操作,请按照其指南进行操作。

设置SSL转发代理

为此,我们将使用:

  1. NGINX实例充当反向代理,它将处理请求并将其发送到NodeJS应用。
  2. 使用Express构建的NodeJS应用程序,它将请求转发到sendgrid.net

配置NGINX反向代理

打开NGINX的默认sites-available文件,运行:

sudo nano /etc/nginx/sites-available/default 

将以下服务器块添加到default文件中,该文件url1234.yourdomain.net是您的品牌链接,用于跟踪您在验证Sendgrid上的自定义域时获得的跟踪:
server {
        server_name url1234.yourdomain.net;

        location / {
                proxy_pass http://localhost:7000;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
        }
}

为您的品牌链接添加CNAME。

将以下记录添加到您的域的DNS区域(第一个记录可能已经存在,63.98.25.184将是您服务器的IP):

类型 名称 内容
一种 yourdomain.com 63.98.25.184
CNAME url1234.yourdomain.com yourdomain.com

使用Node和Express构建并运行正向代理

在服务器上创建一个名为的新文件夹mail-proxy。在该文件夹中移动并运行:
npm init -y
然后,安装以下软件包:

npm i express morgan http-proxy-middleware
创建一个index.js文件并添加以下内容:
const express = require('express');
const morgan = require('morgan');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();

const PORT = 7000;
const HOST = 'localhost';
const SENDGRID_URL = 'https://sendgrid.net';

app.use(morgan('dev'));

app.use('/', createProxyMiddleware({
  target: SENDGRID_URL,
  changeOrigin: true,
  secure: false,
  headers: {
    'Host': 'url1234.yourdomain.com'
  }
}));

app.listen(PORT, HOST, () => {
  console.log(`Starting Proxy at ${HOST}:${PORT}`);
});
这个简单的Express应用程序监听请求,PORT 7000索引的处理程序/是一个http-proxy-middleware实例,它将每个请求转发给sendgrid.net

现在,安装pm2(Node进程管理器),然后运行正向代理,如下所示:

npm i -g pm2
pm2 start index.js --watch
使用SSL保护代理

为此,我们将使用Certbot生成一个Let's Encrypt证书。要安装Certbot,请遵循官方指南

安装Certbot之后,请在终端上运行以下命令以生成用于品牌链接域的SSL证书,如下所示:

certbot --nginx -d url1234.yourdomain.com
联系Sendgrid

配置正向代理后,您需要联系他们的Sendgrid支持以为品牌链接启用点击跟踪功能。确保还启用了“点击跟踪”设置


就这样。希望能帮助到你!

免责声明:
1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
3. 未登录无法下载,登录使用金币下载所有资源。
IT小站 » 配置自定义SSL转发代理以在Sendgrid中单击跟踪电子邮件

常见问题FAQ

没有金币/金币不足 怎么办?
本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
所有资源普通会员都能下载吗?
本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。

发表评论