SMTP連携
SMTPクライアント、アプリケーション、デバイスのどれでも利用できます。ダッシュボードの接続値をコピーして、TLSを有効にしてください。
接続の詳細
常に暗号化された接続を使用してください。認証には、SMTPユーザー名と、パスワードとしてAPIキーを使います。正確なホストとユーザー名は、ダッシュボードのSMTPページからコピーしてください。以下の値は形式の例です。
Host: YOUR_SMTP_HOST Port: 587 (STARTTLS) or 465 (implicit TLS) Username: YOUR_SMTP_USERNAME Password: YOUR_API_KEY
使用するポート
STARTTLSを使うポート587が標準のサブミッションポートで、最適な既定値です。ポート465は最初のバイトからTLSを使用し、それを前提とするクライアントに適しています。サブミッションにポート25は避けてください。サーバー間のメール用であり、多くのホスティング事業者がブロックしています。
コマンドラインからテスト
アプリケーションに組み込む前に、認証を確認しましょう。swaksでテストメッセージを送信でき、失敗した場合はopensslでTLSハンドシェイクを確認できます。
swaks --to you@example.com --from hello@example.com \ --server YOUR_SMTP_HOST:587 --tls \ --auth LOGIN --auth-user YOUR_SMTP_USERNAME openssl s_client -starttls smtp -connect YOUR_SMTP_HOST:587
例:Node.js(Nodemailer)
NodemailerはどのSMTPサービスでも動作します。認証情報は環境変数に保管してください。
const nodemailer = require("nodemailer");
const transport = nodemailer.createTransport({
host: process.env.SMTP_HOST,
port: 587,
secure: false, // STARTTLS
auth: { user: process.env.SMTP_USER, pass: process.env.MIGOSMTP_KEY },
});
await transport.sendMail({ from, to, subject, text });例:Python(smtplib)
単純な送信であれば、標準ライブラリで十分です。
import os, smtplib
from email.message import EmailMessage
msg = EmailMessage()
msg["From"], msg["To"], msg["Subject"] = "hello@example.com", "you@example.com", "Hello"
msg.set_content("It works.")
with smtplib.SMTP(os.environ["SMTP_HOST"], 587) as s:
s.starttls()
s.login(os.environ["SMTP_USER"], os.environ["MIGOSMTP_KEY"])
s.send_message(msg)設定しておきたいヘッダー
返信先をfromアドレス以外にしたい場合は、Reply-Toを設定してください。一括送信やマーケティングメールには、メールボックスプロバイダーが確認するList-Unsubscribeヘッダーを追加します。fromアドレスは認証済みドメインのものを使ってください。そうでないと、メッセージが拒否されることがあります。
配信結果
SMTPで分かるのは、メッセージが受理されたことだけです。配信されたか、バウンスしたか、迷惑メールとして報告されたかを知るには、webhookかダッシュボードのアクティビティ画面を使います。