新しいガイド:評判を損なわずに専用IPをウォームアップする方法。 続きを読む →
MigoSMTP
ガイド

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かダッシュボードのアクティビティ画面を使います。

症状確認事項
535 Authentication failedユーザー名と、パスワードが送信権限を持つ現在有効なAPIキーであることを確認してください。
Connection timed outホスト側でポートがブロックされている可能性があります。587または465を試し、ファイアウォールのルールも確認してください。
TLS or certificate error587ではSTARTTLS、465では暗黙のTLSを使用し、クライアントライブラリを最新の状態に保ってください。
550 sender rejectedfromアドレスが認証済みドメインのものではありません。先にドメインを認証してください。
421 or 451 temporary error送信ペースを落とし、後で再試行してください。短い間隔で繰り返し再試行しないでください。
このページは役に立ちましたか?サポートに問い合わせる

数分で送信を始めましょう。

アカウントを作成し、ドメインを追加して、最初のメールを送信します。