此表存储游戏内的邮件系统数据。
| 字段名 | 类型 | 说明 | 默认值 | 示例 |
|---|---|---|---|---|
| id | int UNSIGNED | 邮件唯一标识符 | NOT NULL AUTO_INCREMENT | 1001 |
| messageType | tinyint UNSIGNED | 邮件类型(0=普通,1=拍卖,2=GM邮件) | NOT NULL DEFAULT 0 | 0 |
| stationery | tinyint | 邮件信纸样式 | NOT NULL DEFAULT 41 | 41 |
| mailTemplateId | smallint UNSIGNED | 邮件模板ID | NOT NULL DEFAULT 0 | 0 |
| sender | int UNSIGNED | 发送者角色guid或特殊标识 | NOT NULL DEFAULT 0 | 12345 |
| receiver | int UNSIGNED | 接收者角色guid | NOT NULL DEFAULT 0 | 54321 |
| subject | varchar(255) | 邮件主题 | '' | "拍卖成功" |
| body | text | 邮件正文 | NULL | "您拍卖的物品已售出" |
| has_items | tinyint UNSIGNED | 是否有附件(0=无,1=有) | NOT NULL DEFAULT 0 | 1 |
| expire_time | int UNSIGNED | 邮件过期时间(Unix时间戳) | NOT NULL DEFAULT 0 | 1672502400 |
| deliver_time | int UNSIGNED | 邮件发送时间(Unix时间戳) | NOT NULL DEFAULT 0 | 1672416000 |
| money | int UNSIGNED | 邮件附带金币(铜币) | NOT NULL DEFAULT 0 | 10000 |
| cod | int UNSIGNED | COD金额(货到付款) | NOT NULL DEFAULT 0 | 0 |
| checked | tinyint UNSIGNED | 邮件状态(0=未读,1=已读) | NOT NULL DEFAULT 0 | 0 |
-- 查询角色未读邮件
SELECT * FROM mail
WHERE receiver = 54321 AND checked = 0;
-- 发送系统邮件
INSERT INTO mail (messageType, sender, receiver, subject, body, money)
VALUES (2, 0, 54321, '系统通知', '感谢您的支持', 10000);
-- 删除过期邮件
DELETE FROM mail
WHERE expire_time < UNIX_TIMESTAMP();