ANA Payをマネーフォワードに自動的に登録する
前提
2026/3時点で、ANA Payはマネフォとの連携非対応
ANA Payはメールで利用情報を送ってくれる
マネーフォワードにAPIは無い
やる
マネフォの支出追加機能を操作するためのPlaywrightを使ったライブラリを書く
Workersはコンテナを起動できるのでうまくやれないか?
プロセススポーンできないので難しいかも
Browser Rendering APIを使ったほうが良さそう
Workersでこれらをつなぎ、メールが来たタイミングでマネフォを操作させる
lambrollのcloudflare版欲しいね
flaregun
普通にwranglerでいいか
カスタムビルドコマンドでScala CLI呼びつければ良い
ANA Payのメールだけこれに転送させる
後から分かったが、2FAもがんばって転送して自動処理するようにした
やった
Email routingのdashboardでworkerを定義した (ana-pay-forwarder)
code:js
export default {
async email(message, env, ctx) {
// raw は ReadableStream (RFC 5322 形式)
const rawText = await new Response(message.raw).text();
console.log(rawText) // これがないとforward許可用のリンクを開けない
const dateMatch = rawText.match(/ご利用日時:(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})/);
const amountMatch = rawText.match(/ご利用金額:(\d,+)円/); const placeMatch = rawText.match(/ご利用店舗:(.+)/);
// 3フィールドすべて揃わなければ何もしない
if (!dateMatch || !amountMatch || !placeMatch) return;
// "2026-03-24 23:06:27" → JST として ISO 8601 に変換
const consumedAt = new Date(
dateMatch1.replace(" ", "T") + "+09:00" ).toISOString();
const amount = parseInt(amountMatch1.replace(/,/g, ""), 10); const place = placeMatch1.trim(); const result = { consumedAt, amount, place };
console.log(JSON.stringify(result));
},
};
Proton Mailでforwardの設定をする
forwardするためにはdestinationにいったん確認メールが飛び、それを許可する必要があるのでbodyをいったんprintさせたりする
$ npm create cloudflare@2 ana-pay-forwarder -- --type pre-existing
既存のWorkerをコードに取り込む
Cloudflare Queuesに投げ込む
$ npx wrangler queues create ana-pay-forward-queue
code:wrangler.jsonc
{
// ... 既存の設定 ...
"queues": {
"producers": [
{
"queue": "ana-pay-notifications",
"binding": "ANA_PAY_QUEUE"
}
]
}
}
await env.ANA_PAY_QUEUE.send(result);を最後に追加する