You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询:如何在FileMaker的Send Mail函数中放置SendGrid定时邮件参数?

在FileMaker中用SendGrid实现定时邮件发送

嘿,刚好我之前折腾过这个需求,来给你理清楚怎么操作!首先得明确:FileMaker原生的Send Mail函数其实没法直接传入SendGrid的定时参数,因为它是基于传统SMTP或本地邮件客户端的,而SendGrid的定时发送是通过它的API来实现的,所以咱们得换个方式——用FileMaker的Insert from URL函数直接调用SendGrid的API。

核心要点

SendGrid实现定时发送的关键参数是send_at,它需要传入UTC时区的Unix时间戳(也就是从1970年1月1日0点到目标时间的秒数),而且SendGrid要求这个时间必须比当前时间晚1分钟以上,同时不能超过72小时以后。

具体实现步骤

1. 准备SendGrid API密钥

先在SendGrid后台生成一个有「发送邮件」权限的API密钥,记下来备用。

2. 转换目标时间为Unix时间戳

在FileMaker里,你可以用内置函数把目标时间转换成符合要求的时间戳。比如要定时到2024年5月20日10点(UTC时间),可以这么写:

Set Variable [ $sendAtTimestamp ; Value: GetAsUTC(Timestamp("2024-05-20"; "10:00:00")) - Timestamp("1970-01-01"; "00:00:00") ]

这里用GetAsUTC确保时间是UTC时区,避免因为本地时区导致定时偏差。

3. 构造API请求体

把邮件内容和定时参数打包成JSON格式的请求体:

Set Variable [ $requestBody ; Value: 
"{
  \"personalizations\": [
    {
      \"to\": [{\"email\": \"recipient@example.com\"}],
      \"send_at\": " & $sendAtTimestamp & "
    }
  ],
  \"from\": {\"email\": \"your-sender@example.com\"},
  \"subject\": \"你的定时邮件主题\",
  \"content\": [{\"type\": \"text/plain\", \"value\": \"这是一封定时发送的测试邮件\"}]
}"
]

注意这里的JSON格式要正确,引号需要用转义符\处理。

4. 用Insert from URL发送请求

最后调用SendGrid的API发送请求:

Insert from URL [ Select ; With dialog: Off ; Target: $response ; 
  "https://api.sendgrid.com/v3/mail/send" ;
  cURL options: "-X POST -H \"Authorization: Bearer " & $apiKey & "\" -H \"Content-Type: application/json\" -d " & Quote($requestBody)
]

这里的$apiKey就是你之前生成的SendGrid API密钥,$response会返回API的响应结果,你可以后续检查这个变量来确认请求是否成功。

注意事项

  • SendGrid的send_at参数有范围限制:不能早于当前时间1分钟,也不能晚于72小时,超出这个范围API会报错。
  • 确保你的SendGrid账户已经开启了定时发送的功能(默认是开启的,但如果有异常可以去后台检查)。
  • 如果需要发送给多个收件人,只需要在personalizations里添加多个to对象即可。

内容的提问来源于stack exchange,提问作者ThinkTech Hawaii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 13:57:34