LoginSignup
7
6

More than 5 years have passed since last update.

Network.Mail.Client.Gmail でのメール送信方法

Posted at

Network.Mail.Mime でのメール送信方法 では、sendmail が必要でしたが、Network.Mail.Client.Gmail を使用すればこちらも簡単にメール送信が行えます。

Gmail.hs
{-# LANGUAGE OverloadedStrings #-}

import Network.Mail.Client.Gmail
import Network.Mail.Mime

main :: IO ()
main = sendGmail
    "foo@gmail.com"                           -- username
    "password"                                -- password
    (Address Nothing "from@example.com")      -- from
    [Address Nothing "to@example.com"]        -- to
    []                                        -- cc
    []                                        -- bcc
    "Subject"                                 -- subject
    "body1\nbody2\nbody3\n"                   -- body
    []                                        -- attachments
    30000000                                  -- timeout (in microseconds)

これだけです。私は Google アカウントは二段階認証で保護していますが、このコードを実行するにあたり特に二段階認証は要求されませんでした。

このコードのポイントは最後のタイムアウトで、これが短すぎるとメール送信が成功しません。上記サンプルでは 30 秒に指定していますが、私の環境では 3〜4 秒で送信が完了してプログラムが自動的に終了します。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6