我为客户管理一封电子邮件通讯。它使用自定义列表管理实用程序,但电子邮件是通过 SendGrid 传递的。
为了与我们的列表管理正确集成,请取消订阅。我正在手动创建“List-Unsubscribe”标头,其中包含一个邮件地址,该地址会发送到电子邮件解析器,并取消用户对正确出版物的订阅等。
电子邮件解析等工作正常。然而,由于某种原因,gmail 没有像我收到的其他新闻通讯那样在标题中显示“取消订阅”链接。
我为不同客户管理的另一份时事通讯,使用 SendGrid 的内置取消订阅管理,对于这些客户,gmail 确实显示链接。
我想知道的是,为什么我的自定义“取消订阅链接”被 gmail 忽略,但 SendGrid 可以工作?
SendGrid 的“列表取消订阅”看起来像这样......
List-Unsubscribe: <mailto:unsubscribe@email.mycustomdomain.com?subject=http://links.mycustomdomain.com/asm/unsubscribe/*q*user_id=[SHA hash...==]>
Run Code Online (Sandbox Code Playgroud)
我的自定义“列表取消订阅”看起来像这样......
List-Unsubscribe: <mailto:u-[custom-encoded-user-id+publication-id]@list-management.mycustomdomain.com>
Run Code Online (Sandbox Code Playgroud)
我的电子邮件解析器读取传入的“收件人”地址,并解释编码的用户 ID 和出版物 ID,以从正确的列表中取消订阅此人。
谁能告诉我为什么 Gmail 可能不喜欢我的链接?找到有关此标头的要求的详细信息非常困难。
一个明显的区别是我的没有主题,但那是因为它不需要它。它从“收件人”地址获取所需的一切。但这真的能有所作为吗?“收件人”地址是否需要保持静态?
我想也许 gmail 需要时间来熟悉这份时事通讯。然而它已经运行了几个月了,仍然没有链接。
该列表非常干净,所有收件人都选择加入。我们没有收到任何垃圾邮件报告,也很少收到退回邮件。
我费了很大的劲来确保一切都能正常工作,但令人沮丧的是我不知道需要做什么才能完成这项工作。
我在gmail论坛上发现了类似的问题,该问题的官方回复是“联系专业人士了解如何构建html电子邮件”。
对我来说不是很有帮助,就我而言,我应该是那么专业。
任何建议将不胜感激。
我正在尝试将我的计算机配置为信任用于测试网站的自签名证书。但是我在使用 Firefox 时遇到了问题。Chrome 和 IE 都可以。
我做了以下工作。
在客户端 PC 上
此时 Chrome 对网站完全没问题,并显示绿色挂锁。IE 和 Edge 现在同样显示警告或错误。
但是 Firefox 会出现 SSL 错误并拒绝信任该证书,因为它是自签名的。
我尝试将证书创建为 CA 和非 CA 证书,但没有区别。
我还尝试将证书直接添加到 Firefox 的授权列表中。它仍然不会相信它。
是否有一些首选方法可以说服 Firefox 信任自签名证书?有什么方法可以说服它证书不是自签名的吗?
我正在使用 bash 脚本通过 rsync 同步 Web 文件夹。我正在使用一系列要排除的文件夹和文件,并且在将这些项目转义为排除列表时遇到问题...
我的排除列表是这样定义的......
SYNC_EXCLUSIONS=(
'/exclude_folder_1'
'/exclude_folder_2'
'.git*'
'.svn'
)
Run Code Online (Sandbox Code Playgroud)
然后我像这样构建排除字符串......
exclusions='';
for e in "${SYNC_EXCLUSIONS[@]}"
do
exclusions+=" --exclude='$e'";
done
Run Code Online (Sandbox Code Playgroud)
最后我执行我的 rsync...
rsync --recursive --delete $exclusions "$DEPLOYMENT_WORK_DIR/" "$DEPLOYMENT_ROOT/"
Run Code Online (Sandbox Code Playgroud)
如果我回显该命令,它看起来很完美,如果我在提示符下复制并执行它,它就会正常工作。但是,当从脚本运行时,排除项将被忽略。
我发现如果我从每个排除的项目周围删除单引号,它就会起作用,就像这样......
exclusions+=" --exclude=$e";
Run Code Online (Sandbox Code Playgroud)
不过,我不想这样做,以防万一我需要排除带有空格或特殊字符的文件夹。
有什么方法可以让它在脚本中工作,同时保留排除项目的引号?我尝试过各种引号和反斜杠等的组合,但我尝试过的都不起作用。
我正在尝试设置 CodePipeline 来管理一个非常简单的 Lambda 函数的部署。
我完全陷入了部署步骤的问题,无法弄清楚可能出了什么问题。
当管道尝试运行 CodeDeploy 操作时,它失败并显示错误...
BundleType must be either YAML or JSON
这是我的应用程序规范...
version: 0.0
Resources:
- my-function:
Type: AWS::Lambda::Function
Properties:
Name: "my-function"
Run Code Online (Sandbox Code Playgroud)
我的管道没有构建步骤,因为它只是一个简单的 js 文件,没有依赖项,因此不需要构建。
我尝试添加一个操作来部署到 S3,我可以确认发送到 s3 的 zip 文件包含 appspec.yml 和 index.js,并且它们都位于根目录中。
我见过的大多数示例都使用构建规范,但我不确定为什么我需要这个,或者如果我有一个它会做什么。
aws-lambda ×1
bash ×1
email ×1
firefox ×1
https ×1
newsletter ×1
rsync ×1
self-signed ×1
ssl ×1