GMAILの署名をAPIから設定する
GMOインターネットグループではメールの署名が統一されており、年度末になると、全グループのパートナー(従業員)が変更を行っています。Gメールでは下記のような手順で署名の変更が可能です。
https://support.google.com/mail/answer/8395?hl=ja&co=GENIE.Platform%3DDesktop
そんなに難しくはないのですが、自社だけでも500名程度のメンバーがもれなく、テンプレートに沿って指定するとなると、それなりに面倒なので、WEBサービスにしました。
https://github.com/pyama86/gmail_signature
実態は、プライベートリポジトリでもちょい、自社固有の情報を入れたりしているので、GitHubの方はコードコピーにでも活用してください。要所のコードを紹介します。
https://github.com/pyama86/gmail_signature/blob/main/app.rb#L78-L86
client = gmail
user = client.get_user_profile('me').email_address
signature = params['signature'].gsub(/\r\n/, '<br>')
new_send_as = Gmail::SendAs.new
new_send_as.send_as_email = user
new_send_as.signature = signature
new_send_as.is_primary = true
new_send_as.is_default = true
client.patch_user_setting_send_as('me', user, new_send_as, options: {})
実態としては、OAuthによって取得したトークンを利用して、patch_user_setting_send_as
を呼び出して、新しい署名を設定してあげます。自社では、名前や、所属を自社のシステムから引っ張ってきて、ERBに食わせることで、自動で良い感じに署名が表示されるようにしました。
このような感じで、部署や、名前が初期レンダリングされるので、利用者は保存するだけで、署名を設定することができます。
新サービスのリリース時などに、全社で署名かえるんやーみたいなときに、便利だと思うので、ぜひご活用ください。