我正在构建一个电子邮件应用程序,其功能是在发送电子邮件后查看已读收件人。例如:如果我向 P1 发送了一封电子邮件并抄送 P2 和 P3,那么当 P1 打开电子邮件时,我作为发件人应该能够看到 P1 阅读了他们的电子邮件。
为了实现这一目标,我使用 Individual Track Pixels 方法,其中我将一个像素添加到我发送的 html 中。但挑战在于,我无法向所有收件人发送唯一的跟踪链接,因为电子邮件的 HTML 部分对每个人来说都是相同的,而且我无法控制将哪封电子邮件发送给哪个收件人(此处为 P1、P2 和 P3) ).
我假设您通过充分告知用户跟踪实践来遵守相关隐私法规。通常建议允许用户选择退出跟踪,并且仅将跟踪用于合法目的。
如果您这样做,那么您可能会考虑为每个收件人实施单独的跟踪像素(所谓的“Spy Pixel”):
收件人的独特跟踪链接:该解决方案应有助于为每个收件人生成唯一的跟踪链接或像素,即使电子邮件的 HTML 部分对于所有收件人都是相同的。它应该允许系统识别哪个收件人(P1、P2 或 P3)单独打开了电子邮件。
hashlib
)使用每个收件人的电子邮件地址和密钥生成唯一的哈希值。
def generate_unique_identifier(email_address):
import hashlib
secret_key = "your_secret_key"
unique_identifier = hashlib.sha256((email_address + secret_key).encode()).hexdigest()
return unique_identifier
您不需要发送一封嵌入所有像素的电子邮件,而是需要向每个收件人发送个性化的电子邮件,并且仅在电子邮件的 HTML 内容中嵌入其特定的跟踪像素。
<!-- Email HTML for P1 -->
<img src="https://yourtrackingserver.com/track/UNIQUE_IDENTIFIER_FOR_P1" width="1" height="1" alt="" />
<!-- Email HTML for P2 -->
<img src="https://yourtrackingserver.com/track/UNIQUE_IDENTIFIER_FOR_P2" width="1" height="1" alt="" />
<!-- Email HTML for P3 -->
<img src="https://yourtrackingserver.com/track/UNIQUE_IDENTIFIER_FOR_P3" width="1" height="1" alt="" />
技术细节:解决方案应提供有关如何实施拟议系统的分步技术指导,包括必要的代码片段、配置或与现有电子邮件协议或平台的集成。
使用后端框架(例如Flask)设置服务器来处理跟踪。配置路由以使用唯一标识符捕获 GET 请求。
from flask import Flask, request
app = Flask(__name__)
@app.route('/track/<unique_identifier>', methods=['GET'])
def track(unique_identifier):
# Log the access to the database
log_access(unique_identifier)
return send_pixel_response()
在跟踪路线内,在数据库中记录每次访问及其各自的唯一标识符和访问时间。
import datetime
def log_access(unique_identifier):
access_time = datetime.datetime.now()
# Log the access time and the unique identifier to a database
log_to_database(unique_identifier, access_time)
有关更多详细信息,请参阅 Matthew Moisen 的“如何使用 Flask 登录到数据库”。
为了保持收件人的无缝体验,服务器应返回 1x1 透明像素图像作为对 GET 请求的响应。
from flask import send_file
def send_pixel_response():
# Return a 1x1 transparent pixel
return send_file('path/to/transparent_pixel.png', mimetype='image/png')