見出し画像

メールから自動でfreee取引を作成しよう! その3 - メールから情報を取得する

前回の記事で、特定のラベルが付与されたメールをすべて取得することができました。

今回は、このメールの内容からfreee取引作成に必要な情報を抽出します。

メール本文の内容

メール本文(一部カット)は、以下の通りです。

いつもConoHaをご利用いただき、ありがとうございます。

サービスのご利用料金につきまして、下記のとおりご請求させて
いただきました。

------------------------------------------------------------
ご利用料金: 1,452 円 (税込)
クーポン適用額:0 円
請求番号:  0123456789
請求日:   2024/03/01
支払方法:  クレジットカード

Conohaからのメール

この本文から抽出するのは、以下の3つ

  • 利用料金

  • 請求書番号

  • 請求日

です。

AIにやらせるか、正規表現でやるか

メール本文の解析の簡単な方法は、OpenAIのChat APIにやらせる方法です。

この方法のメリットは、メール本文のフォーマットや表記が変わってもいい塩梅に解釈してくれそうな点です。

一方でデメリットは、ごく少額だけれど費用が発生する点と稀に解析に失敗する可能性です。

フォーマットが安定しているのであれば、以下の記事でも紹介した正規表現を使った情報抽出がよいでしょう(無料だし)。

ただし、今回解析するのは添付された請求書でなく、メール本文です。そういう意味では添付ファイルよりももっとシンプルに実装できそうです。

請求日は利用期間ではない

実は、このスクリプトを実装しようと思ったきっかけがあります。それは、この取引の発生日はメール記載の請求日以前であり、またクレジットカードの明細計上日より前であるということです。

定期取引(いわゆるサブスク)なので、請求書が送られてくるわけでもなく、取引発生の認識は、メール受信かカードの明細です。

いわゆる明細から生まれる取引ですね。

しかし、Conohaのレンタルサーバーの利用料金(月払い)の場合、毎月初に前月分の利用料金のメールが来て、そこからカードで引き落とされます。

つまり、freeeに登録したい発生日は請求日や明細計上日の前月末日になります。

この発生日も自動で設定できるようにしていきます。

ということで、正規表現を使って利用料金・請求日・請求番号を取得し、請求日を起算日として発生日は前月末日を返すスクリプトを実装していきたいと思います。

正規表現で情報を抜き出す

正規表現を利用するスクリプトに関しては、すっかりChatGPTだのみになりました。

今回も以下のようなプロンプトで関数を出力してもらいました。

ここから先は

1,187字 / 1画像

アーリーバードプラン

¥500 / 月
人数制限あり
このメンバーシップの詳細

この記事が気に入ったらチップで応援してみませんか?