如何使用gmail2gdrive脚本将Gmail附件追加邮件时间戳后存至Google Drive
功能可行性结论
完全可以实现,对应Google Apps Script本身开放了文件名自定义的配置/逻辑入口,只需少量修改即可完成需求,无需重构核心功能。
具体修改步骤
- 定位文件名生成逻辑
找到脚本中处理附件保存的逻辑:如果是配置驱动的版本,直接定位globalConfig配置块中的filename字段;如果是硬编码逻辑的版本,找到生成保存文件名的行,原有逻辑一般为直接调用attachment.getName()获取附件原始文件名作为存储文件名。 - 插入邮件时间戳格式化逻辑
脚本处理邮件时已经可以获取到当前邮件的实例对象message,调用message.getDate()即可拿到邮件的发送时间对象,可直接格式化后拼接到文件名前。
快速格式化示例(生成YYYYMMDD_HHMMSS格式时间戳,无特殊字符不会影响文件名合法性):// 时间格式化函数,可直接加在脚本任意位置 function formatMailDate(date) { return `${date.getFullYear()}${String(date.getMonth()+1).padStart(2,'0')}${String(date.getDate()).padStart(2,'0')}_${String(date.getHours()).padStart(2,'0')}${String(date.getMinutes()).padStart(2,'0')}${String(date.getSeconds()).padStart(2,'0')}` } - 修改文件名拼接规则
将原有文件名赋值逻辑替换为时间戳+原始文件名的拼接格式,示例:// 原硬编码逻辑 // const saveFileName = attachment.getName(); // 修改后逻辑 const saveFileName = `${formatMailDate(message.getDate())}_${attachment.getName()}`; // 若为配置驱动版本,直接修改filename配置项即可 // filename: "${formatMailDate(message.getDate())}_${attachmentName}" - 功能验证
修改完成后,手动触发一次脚本执行,检查Google Drive中保存的附件是否已经携带邮件时间戳前缀,确认无文件名乱码、时间戳取值错误问题即可正式使用。
可选优化项
- 若存在单封邮件多同名附件的场景,可在拼接规则中额外追加附件序号,避免文件覆盖
- 若需要使用邮件接收时间而非发送时间,可替换
message.getDate()为对应邮件接收时间的取值方法即可
内容的提问来源于stack exchange,提问作者Ramesh
相关产品推荐
相关产品推荐

