GMAILの署名をAPIから設定する

GMOインターネットグループではメールの署名が統一されており、年度末になると、全グループのパートナー(従業員)が変更を行っています。Gメールでは下記のような手順で署名の変更が可能です。

そんなに難しくはないのですが、自社だけでも500名程度のメンバーがもれなく、テンプレートに沿って指定するとなると、それなりに面倒なので、WEBサービスにしました。

実態は、プライベートリポジトリでもちょい、自社固有の情報を入れたりしているので、GitHubの方はコードコピーにでも活用してください。要所のコードを紹介します。

    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に食わせることで、自動で良い感じに署名が表示されるようにしました。

このような感じで、部署や、名前が初期レンダリングされるので、利用者は保存するだけで、署名を設定することができます。

新サービスのリリース時などに、全社で署名かえるんやーみたいなときに、便利だと思うので、ぜひご活用ください。