1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JuliaでGmailを送付する方法

Last updated at Posted at 2024-08-20

サーバーで計算を回しているとき

長い計算が終了した際に、自動でメールを送ってくれるとすごく助かります。

方法

SMTPClient.jlというパッケージとGmailのアプリパスワードを使用して実装できました。

Gmailの設定

次のサイトを参考に作成しております。

Googleアカウントの設定画面から [セキュリティ] > [2段階認証プロセス] > [アプリパスワード]に移動します。

アプリは「メール」、デバイスは「その他(名前を入力)」>「Gmail Julia」としてアプリパスワードを取得して、コピーしておいてください。(後ほどコードに貼り付けます。)

Juliaの設定

  1. SMTPClientパッケージを追加してください。
  2. 次のようなファイルを作成してください。
    smtp.json
    {"passwd":"(コピペした16桁のアプリパスワード)","username":"(Gmailのメールアドレス)","from":"(著名)","url":"smtps://smtp.gmail.com:465"}
    
  3. 続いて、メールを送るためのコードを次のように作成してください。
    sending_mail.jl
    using JSON
    using SMTPClient, Dates
    
    
    function readsettings()
        str = open(f -> read(f, String), "(smtp.jsonのあるディレクトリのパス)/smtp.json")
        settings = JSON.parse(str)
        return settings
    end
    
    
    function sendmail(subject::String, message::String)
        settings = readsettings()
        opt = SendOptions(
            isSSL=true,
            username=settings["username"],
            passwd=settings["passwd"])
        # Provide the message body as RFC5322 within an IO
        dtstr = Dates.format(Dates.now(), "e, dd u YYYY HH:MM:SS +0900")
        body = IOBuffer(
            "Date: " * dtstr * "\r\n" *
            "From: " * settings["from"] * " <" * settings["username"] * ">\r\n" *
            "To: " * settings["username"] * "\r\n" *
            "Subject: " * subject * "\r\n" *
            "\r\n" *
            message * 
            "\r\n")
        url = settings["url"]
        rcpt = ["<" * settings["username"] * ">"]
        from = "<" * settings["username"] * ">"
        resp = send(url, rcpt, from, body, opt)
    end
    

以上で設定は終了です。

使い方

sending_mail.jlをインポートします。

julia> include("sending_mail.jl")

その後、次のように実行することでメールが送付できます。

julia> sendmail(
          "(メールのタイトル)",
          "(メールの本文)"
      )

これで完了です。

最後に

セキュリティには十分お気を付けください!

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?