mkt_mail_message_insert_guide.md 4.6 KB

mkt_mail_message SQL 插入说明(定时发送)

通过 SQL 直接写入营销邮件表,由定时任务扫描 status=-1delay_send_time <= NOW() 的记录并 SMTP 发送。
is_track=1,发送前会自动补 track_token 并注入打开追踪像素。


案例

INSERT INTO mkt_mail_message (
  account_id, subject, from_addr, from_name, recipient, content,
  folder, in_out_mark, status, delay_send_time, is_track,
  owner_by, create_by, create_time, update_time, is_delete, enabled
) VALUES (
  1001,                                    -- account_id:MKT 发信账户 ID
  '促销活动',                               -- subject:主题
  'mkt@example.com',                       -- from_addr:发件人邮箱
  '营销号',                                 -- from_name:发件人显示名
  'user@example.com',                      -- recipient:收件人
  '<html><body><p>你好</p></body></html>', -- content:HTML 正文
  'SENTING',                               -- folder:发件中
  2,                                       -- in_out_mark:发件
  -1,                                      -- status:待定时发送(必填 -1)
  '2026-08-14 12:00:00',                   -- delay_send_time:定时发送时间
  1,                                       -- is_track:开启打开追踪
  1,                                       -- owner_by:归属人
  1,                                       -- create_by:创建人
  NOW(),                                   -- create_time
  NOW(),                                   -- update_time
  0,                                       -- is_delete:未删除
  1                                        -- enabled:启用
);

说明:

  • account_id=1001 需在 smtp_pop_settings 中存在,且 scene=MKT、可用。
  • 到点后任务会把 status 改为 0(发送中),成功为 1,失败为 2
  • track_token 本例未写;发送时若 is_track=1 且无 token,系统自动生成并注入像素。
  • 需配置 storlead.mail.track-base-url(公网可访问,含 context-path)。

字段说明(本案例涉及)

字段 类型 必填 本例值 说明
account_id bigint 1001 发信账户 ID,对应 smtp_pop_settings.id,账户须为营销场景(scene=MKT)
subject varchar(512) 业务必填 促销活动 邮件主题
from_addr varchar(255) 建议填 mkt@example.com 发件人邮箱,一般与账户邮箱一致;SMTP 实际 From 以账户为准
from_name varchar(255) 建议填 营销号 发件人显示名
recipient varchar(512) user@example.com 收件人邮箱;一收件人一行
content mediumtext 业务必填 HTML 邮件正文;追踪像素在真正发送时注入,不必手写进 content
folder varchar(32) 建议填 SENTING 文件夹:定时/发送中用 SENTING;成功后可能变为 SENT
in_out_mark tinyint 建议填 2 进出标记:1=收件,2=发件
status tinyint 是(定时) -1 投递状态:-2草稿,-1待定时,0发送中,1成功,2失败。走定时任务必须写 -1(表默认是 0,不会被扫描)
delay_send_time datetime 是(定时) 2026-08-14 12:00:00 定时发送时间;任务条件为 delay_send_time <= NOW()
is_track tinyint 追踪时必填 1 是否打开追踪:0否,1是。为 1 时发送前会补 token 并注入像素
owner_by bigint 建议填 1 数据归属人用户 ID
create_by bigint 建议填 1 创建人用户 ID
create_time datetime 建议填 NOW() 创建时间
update_time datetime 建议填 NOW() 更新时间
is_delete tinyint 0 逻辑删除:0未删,1已删。任务只处理 0
enabled tinyint 建议填 1 是否启用:1启用,0禁用;默认 1

本案例未写、但相关的字段

字段 默认/处理 说明
id 自增 主键,勿手填
track_token null → 发送时自动生成 is_track=1 时可空;唯一索引
biz_ref null 业务单号,便于按活动回查 / open_stats
biz_batch_no null 批次号
org_id null 组织 ID
message_id null SMTP 成功后系统回写
opened / open_count 0 打开态,插库保持默认
sent_time null 发送成功后系统回写

定时任务扫描条件(对照)

is_delete = 0
AND status = -1
AND delay_send_time IS NOT NULL
AND delay_send_time <= NOW()