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

# 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](https://colab.research.google.com/) にアクセスして、Python のコードを実行できる環境を準備します。以下のスクリプトを利用することで、簡単に SMTP サーバーを使ったメール送信を試すことができます。

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

[Google Colab: LINE WORKS SMTP メール送信サンプル](https://colab.research.google.com/drive/1x-gbYwMrSmecfTHqCLcf8Z2-_JM7fXGh?usp=sharing)



## サンプルスクリプト

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

```python
# ライブラリのインポート
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_SERVER` と `SMTP_PORT` を指定します。
   - `USER_ID` にはメールアカウントを、`APP_PASSWORD` には外部アプリ用パスワードを設定します。

2. **メールの作成**
   - `MIMEMultipart` でメールを構築し、送信者、受信者、件名、本文を設定します。

3. **STARTTLS を使用したセキュアな接続**
   - `smtplib.SMTP` を利用してサーバーに接続します。
   - `starttls()` で暗号化通信を開始し、認証情報を用いてログインします。

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

## 実行結果例

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

### 失敗時（例: 認証エラー）
```plaintext
❌ メールの送信に失敗しました: SMTPAuthenticationError
```

## 注意事項

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

2. **デバッグ出力の無効化**
   - `set_debuglevel(1)` で詳細ログを確認できますが、本番環境では無効化してください。

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

## まとめ

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

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