如何在VPS上使用LLM实现个性化电子邮件营销活动的自动化?
本技术性分步指南展示了如何在 VPS 或云服务器上部署 LLM,生成个性化电子邮件文本,并通过正确配置 MTA 和 DNS 记录,安全可靠地大规模运行发送活动。.
整体架构——基于 VPS 运行的 LLM 实现个性化电子邮件营销活动自动化
典型的架构包括以下组件,每个组件在生成、排队和发送电子邮件方面都发挥着特定作用:
- LLM推理服务器(基于VPS/GPU云平台) — 实施该模型以生成个性化内容。.
- 应用程序 API(FastAPI/Flask) — 数据库、LLM 和发送队列之间的接口。.
- 消息队列和工作进程(Redis + Celery 或 RabbitMQ) — 后台发送和定价管理。.
- MTA 或 SMTP 中继(Postfix/Haraka 或 Mailgun/Sendgrid 等外部服务) — 实际发送电子邮件。.
- 监控和日志记录(Prometheus + Grafana + ELK) 以及反弹管理。.
- DNS 记录:专用 IP 的 SPF、DKIM、DMARC 和 PTR。.
在VPS或云服务器上部署的优势:
- 对数据和模型拥有完全控制权 — 对隐私和合规性至关重要。.
- 使用 GPU 云的能力 用于推断大型模型。.
- IP分配和预热管理 为了提高交付效率。.
- 地理分布 利用 85 个以上位置来降低延迟。.
前提条件和服务器选择
硬件和位置选择
适用于大型机型(7B/13B+) 建议使用配备 16–48 GB 显存的服务器 GPU(例如 A100/RTX 3090/4090)。对于较小或量化模型,例如: LLama-2-7B q4_0 你可以使用配备 32GB 以上内存的 CPU。.
地点: 为了提高本地收件箱的送达率,来自同一地理区域的 IP 地址可能有所帮助;但对于整体送达率而言,IP 地址封锁及其历史记录更为重要。.
软件
建议的软件组件:
- Docker、Docker Compose 或 Kubernetes(用于扩展)。.
- 文本生成推理 (TGI) 或 vLLM 用于推理;更轻量级的路径,如 GGML/llama.cpp,适用于 CPU 服务器。.
- API 使用 FastAPI,队列使用 Celery + Redis,发送使用 Postfix/Haraka 或 SMTP 中继。.
实际操作——循序渐进
基本安装(以Ubuntu为例)
在 Ubuntu 上安装 Docker 的说明:
sudo apt update
sudo apt install -y docker.io docker-compose
sudo systemctl enable --now dockerLLM + API + Redis 的 Docker Compose 示例
一个简单的版本,它运行 TGI 作为推理程序和一个 FastAPI 应用程序:
version: "3.8"
services:
tgi:
image: ghcr.io/oobabooga/text-generation-inference:latest
ports:
- "8080:8080"
volumes:
- ./models:/models
environment:
- MODEL_ID=/models/your-model
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
api:
image: yourrepo/email-llm-api:latest
build: ./api
ports:
- "8000:8000"
environment:
- TGI_URL=http://tgi:8080
- REDIS_URL=redis://redis:6379
depends_on:
- tgi
- redis
redis:
image: redis:6
ports:
- "6379:6379"简单 API 示例(Python + FastAPI)— LLM 调用和格式化
以下是使用 TGI 生成内容并将其排队在后台发送的示例代码片段:
from fastapi import FastAPI, BackgroundTasks
import requests, smtplib
from jinja2 import Template
app = FastAPI()
def send_email(smtp_host, smtp_port, user, password, to, subject, body):
import smtplib
from email.mime.text import MIMEText
msg = MIMEText(body, "html")
msg["Subject"] = subject
msg["From"] = user
msg["To"] = to
with smtplib.SMTP(smtp_host, smtp_port) as s:
s.starttls()
s.login(user, password)
s.sendmail(user, [to], msg.as_string())
@app.post("/generate-and-send")
def generate_and_send(payload: dict, background_tasks: BackgroundTasks):
tgi_resp = requests.post("http://tgi:8080/generate", json={
"prompt": f"Create a personalized marketing email for {payload['name']} about {payload['product']}",
"max_new_tokens": 200
}).json()
email_body = tgi_resp["generated_text"]
template = Template(email_body)
final = template.render(**payload)
background_tasks.add_task(send_email, "smtp.local", 587, "[email protected]", "smtp-pass", payload["email"], "پیشنهاد ویژه", final)
return {"status": "queued"}电子邮件设置和送达率
SPF、DKIM、DMARC
示例记录和关键步骤:
- 防晒系数: DNS 中的 TXT 记录及其示例值:
"v=spf1 ip4:YOUR.IP.ADD.RESS include:spf.yourrelay.com -all" - DKIM: 使用 OpenDKIM。密钥生成:
opendkim-genkey -t -s mail -d example.com - DMARC: 示例记录:
_dmarc.example.com TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]; ruf=mailto:[email protected]; pct=100"
PTR、专用IP和热身赛
PTR(反向 DNS) 它应该返回电子邮件主机名。.
热身: 使用专用 IP 和预热程序:最初发送有限的数量(例如每天 50-200 封电子邮件),然后逐渐增加以避免被屏蔽。.
速率限制和排队
Postfix 速率和连接限制配置示例:
smtpd_client_message_rate_limit = 100
smtpd_client_connection_count_limit = 10对于大型活动,通常最好使用可信的 SMTP 中继,并让应用程序端仅根据提供商的限制来控制发送队列。.
安全和隐私
TLS: 始终使用 STARTTLS 或 SMTPS 发送 SMTP 请求。Postfix 的 main.cf 文件中:
smtpd_tls_cert_file=/etc/letsencrypt/live/example.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/example.com/privkey.pem密钥和令牌存储: 使用 Vault 或 Secret Manager。.
敏感数据加密: 在 PostgreSQL 中,您可以使用 pgcrypto 或字段级加密。.
监控、退信处理和指标
弹跳处理: 通过 VERP 或特定邮箱收到退信是处理和更新数据库中状态的必要条件。.
关键绩效指标: 送达率、打开率、点击率、跳出率、垃圾邮件投诉。.
系统监控: Prometheus 用于 CPU/GPU/VRAM,Grafana 仪表板用于延迟推断、队列长度和成功/失败指标。.
可扩展性和模型优化
利用GPU云和量化
对于大型模型,建议使用 GPU 云。量化(4 位/8 位)以及使用 vLLM 或 Triton 等技术可以减少 4-10 倍的内存占用,并提高吞吐量。.
缓存产品和提示模板
为了降低每次模型调用的成本,缓存重复的文本部分,并使用提示模板和安全方法来替换 PII 字段。.
比较不同地点并推荐推广活动
- 本地受众: 如果大多数接收者位于同一国家/大洲,则同一地区的 VPS 可以降低延迟,有时还可以提高互操作性。.
- 向主要邮件服务提供商(Gmail、Yahoo)发送邮件: 比地理位置更重要的是 IP 地址封锁历史记录和 DNS 设置。.
- 抵御攻击: 在遭受攻击期间,使用反 DDoS 服务器和 BGP 网络对于保证服务连续性至关重要。.
实施清单(分步指南)
- 根据型号选择位置和服务器类型(GPU 或 CPU)。.
- 设置 VPS 并安装 Docker/Docker Compose。.
- 部署 LLM 推理服务器 (TGI/vLLM) 和 API。.
- 队列配置(Redis + Celery)和工作进程。.
- 设置有效的 MTA 或选择有效的 SMTP 中继。.
- 生成 DKIM 密钥并添加 SPF、DKIM、DMARC 记录。.
- 使用 certbot 设置 TLS 并设置 PTR。.
- 按计划进行 IP 预热(7-14 天)。.
- 主动监控和反弹处理。.
- A/B测试和KPI衡量。.
针对不同团队的实用技巧
- 对于 DevOps: 使用 IaC(Terraform 或 Ansible)进行网络和 DNS 部署,并使用容器注册表存储镜像。.
- 用于市场营销: 利用投放和互动指标来设置提示和细分目标。.
- 出于安全考虑: 使用 IP 允许列表和速率限制来限制对 LLM API 的访问。.
结论
基于 VPS 的 LLM 个性化邮件营销活动自动化方案,融合了语言模型、队列架构和邮件基础设施的强大功能。通过从 85 多个全球服务器位置中选择合适的服务器,利用 GPU 服务器进行推理,并优化 SPF/DKIM/DMARC 等安全策略,可以显著提高邮件打开率和转化率,同时降低风险。.
如果您需要查看详细配置(CPU/GPU、位置、专用 IP 和预热计划),您可以利用服务中提供的专业托管和配置选项,或者咨询技术团队。.





