2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

API Lab for LINE WORKSAdvent Calendar 2024

Day 16

LINE WORKS の SMTP サーバーからメールを送信する

Last updated at Posted at 2024-12-15

LINE WORKS の SMTP サーバーを利用してメール送信を行う方法

LINE WORKS の SMTP サーバーを使ってメールを送信する方法を紹介します。このガイドでは、Google Colab 上で動作する Python スクリプトを提供し、簡単にメール送信を試せるようにします。

概要

LINE WORKS の SMTP サーバーを利用することで、以下の機能を実現できます:

  • LINE WORKS メールアカウントを利用したメール送信
  • Google Colab を利用して環境構築なしで試せる

本記事では、STARTTLS による暗号化通信を用い、安全にメールを送信する方法を解説します。

必要な準備

1. LINE WORKS の SMTP サーバー情報

LINE WORKS のメール送信に必要な設定情報は以下の通りです:

項目
SMTP サーバー smtp.worksmobile.com
ポート番号 587 (STARTTLS/TLS 必須)
ユーザー ID LINE WORKS のメールアカウント
パスワード 外部アプリ用パスワード
  • ユーザー ID: LINE WORKS メールアカウント (例: user@example.com)
  • 外部アプリ用パスワード: メール設定画面で発行するアプリ用のパスワード

2. Google Colab を開く

Google Colab にアクセスして、Python のコードを実行できる環境を準備します。以下のスクリプトを利用することで、簡単に SMTP サーバーを使ったメール送信を試すことができます。

Google Colab 上で共有されたノートブックもご利用いただけます。以下のリンクから直接試すことができます:

Google Colab: LINE WORKS SMTP メール送信サンプル

サンプルスクリプト

以下のコードを Google Colab にコピーして実行してください。

# ライブラリのインポート
import smtplib
import ssl
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

# メール設定
SMTP_SERVER = "smtp.worksmobile.com"
SMTP_PORT = 587
USER_ID = "user@example.com"  # @param {type:"string"}
APP_PASSWORD = "M0BsUpgHNnD2"  # @param {type:"string"}

# メール送信内容
FROM_EMAIL = USER_ID
TO_EMAIL = "someone@example.com"  # @param {type:"string"}
SUBJECT = "LINE WORKS SMTP メール送信テスト"  # @param {type:"string"}
BODY = "これは Google Colab 経由で送信されたテストメールです。"  # @param {type:"string"}

# メールの作成
message = MIMEMultipart()
message["From"] = FROM_EMAIL
message["To"] = TO_EMAIL
message["Subject"] = SUBJECT

# 本文を追加
message.attach(MIMEText(BODY, "plain"))

# SMTP サーバーを利用してメールを送信
try:
    # セキュリティ接続を作成
    context = ssl.create_default_context()
    
    # SMTP サーバーに接続して送信
    print("🔗 SMTP サーバーに接続中...")
    with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server:
        server.set_debuglevel(1)  # デバッグ出力を有効化 (0で無効化)
        server.starttls(context=context)  # STARTTLS で暗号化
        server.login(USER_ID, APP_PASSWORD)
        print("✅ SMTP 認証に成功しました!")

        server.sendmail(FROM_EMAIL, TO_EMAIL, message.as_string())
        print("📨 メールが正常に送信されました!")
except Exception as e:
    print(f"❌ メールの送信に失敗しました: {e}")

コードの説明

  1. SMTP サーバー情報の設定

    • SMTP_SERVERSMTP_PORT を指定します。
    • USER_ID にはメールアカウントを、APP_PASSWORD には外部アプリ用パスワードを設定します。
  2. メールの作成

    • MIMEMultipart でメールを構築し、送信者、受信者、件名、本文を設定します。
  3. STARTTLS を使用したセキュアな接続

    • smtplib.SMTP を利用してサーバーに接続します。
    • starttls() で暗号化通信を開始し、認証情報を用いてログインします。
  4. デバッグ出力

    • server.set_debuglevel(1) を指定することで、SMTP サーバーとの通信内容を確認できます。必要に応じて 0 に設定して無効化してください。

実行結果例

成功時

🔗 SMTP サーバーに接続中...
✅ SMTP 認証に成功しました!
📨 メールが正常に送信されました!

失敗時(例: 認証エラー)

❌ メールの送信に失敗しました: SMTPAuthenticationError

注意事項

  1. パスワードの管理

    • 外部アプリ用パスワードを安全に管理してください。Google Colab のコードには直接記載せず、環境変数やシークレットストアを活用することを推奨します。
  2. デバッグ出力の無効化

    • set_debuglevel(1) で詳細ログを確認できますが、本番環境では無効化してください。
  3. 宛先の確認

    • 宛先のメールアドレスは正しい形式で設定し、スパムとして扱われないよう配慮してください。

まとめ

このスクリプトを活用することで、LINE WORKS の SMTP サーバーを利用した安全なメール送信が簡単に行えます。Google Colab を使えば、ローカル環境の準備が不要で、すぐに試すことができます。

ぜひ、LINE WORKS のメール送信機能を活用してみてください!質問やフィードバックがあればコメントをお待ちしています。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?