4D Netkit:Gmail API によるラベル割り当て&複数メールの取得

4D v20 R4 では、Gmail コマンドセットに強力な機能拡張が追加されました。

1つ目は、複数のメールを同時に取得できる機能で、2つ目は、メールのラベルを変更する機能です。

HDI: Gmail API: メールの管理

アカウント接続

アカウントに接続するには、OAuth2Provider オブジェクトと Googleオブジェクトを作成します。

var $oAuth2 : cs.NetKit.OAuth2Provider
var $google : cs.NetKit.Google
$oAuth2:=cs.NetKit.OAuth2Provider.new($credentials)
$google:=cs.NetKit.Google.new($oAuth2; {mailType: "JMAP"})

メールラベルの追加と削除

ラベルはメールを分類するためのもので、他のメールシステムのフォルダーに似ています。しかし、ラベルが特別なのは、一つのメールに複数のラベルを割り当てることができる点です。ラベルには、INBOX、SPAM、TRASH、UNREAD、STARRED、IMPORTANT などのシステムラベル、またはカスタムラベルがあります。たとえば、あるメールに “仕事” と “重要” のラベルを付けるには、次のように .update() 関数を使います:

$status:=$google.mail.update($mailIds; {addLabelIds: ["Work"; "IMPORTANT"]})

同様に、.update() 関数でメールからラベルを削除できます。たとえば、”UNREAD” ラベルを削除したい場合は次のように書きます:

$status:=$google.mail.update($mailIds; {removeLabelIds: ["UNREAD"]})

複数メールのダウンロード

取得したいメールが複数ある場合、.getMails() 関数を使用します:

$mailIds:=$google.mail.getMailIds({labelIds: ["INBOX","UNREAD"]})
// メールID のコレクションをもとにメールを取得します
$mails:=$google.mail.getMails($mailIds)

.getMails() が一度に取得できるメールの最大数は 100通です。それ以上のメールを取得するには、この関数を数回呼び出します。

 

このフィーチャーリリースは 4D の Gmailコマンドセットを充実させ、メールの一括取得やラベル管理などの機能を強化しました。

詳細な実装については、ドキュメント を参照ください。

Fabrice Mainguené
- Product Owner -Fabrice Mainguenéは、2016年11月に4D Programチームに参加しました。プロダクトオーナーとして、彼はユーザーストーリーを書き、それを機能仕様に変換する役割を担っています。CNAMでコンピュータサイエンスの学士号を取得した後、FabriceはWindev開発者として小さなソフトウェア出版社に入社しました。その後、彼は産業および貿易分野のさまざまな企業で、Windev および Web 開発者として、また新機能の技術アドバイザーとして働きました。