使用Gmail API回复邮件时能否自动包含历史邮件引用文本?
GmailService API 回复邮件是否自动添加历史邮件引用?
GmailService API 不会自动添加邮件线程的历史引用文本,你需要手动实现这个逻辑。
具体实现步骤:
- 获取线程中的原始邮件内容
- 解析邮件正文与头部信息,提取需要引用的历史内容
- 按照邮件引用格式(每行前缀
>)拼接新邮件正文 - 将处理后的内容编码为Gmail要求的
raw格式再发送
补充示例代码:
# 1. 获取线程内的原始邮件(示例取线程关联的目标邮件) original_message = gmail_service.get_user_message(API::Google::USER_ALIAS, thread_id) # 用mail gem解析邮件内容(需先安装gem install mail) require 'mail' parsed_mail = Mail.read_from_string(Base64.urlsafe_decode64(original_message.payload.body.data)) original_body = parsed_mail.body.decoded # 2. 生成带引用格式的历史内容 quoted_text = original_body.lines.map { |line| "> #{line}" }.join new_body = "你的回复内容\n\n#{quoted_text}" # 3. 构建新邮件并编码为url-safe Base64格式 new_mail = Mail.new do to parsed_mail.from subject "Re: #{parsed_mail.subject}" body new_body end raw_mail = Base64.urlsafe_encode64(new_mail.to_s) # 4. 发送回复邮件 message = Google::Apis::GmailV1::Message.new(raw: raw_mail, thread_id: thread_id) response = gmail_service.send_user_message(API::Google::USER_ALIAS, message)
注意事项:
- 需处理MIME多类型邮件(如带HTML格式的邮件),不能仅解析纯文本
- 借助
mailgem可大幅简化邮件解析与构建流程 - 必须保证
raw参数使用Base64 url-safe编码格式
内容的提问来源于stack exchange,提问作者data-dawg
相关产品推荐
相关产品推荐

