数分でメールを設定

ガイドをパーソナライズして時間を節約します。

あなたは私たちのプライバシーポリシー条件に同意します。

興味がない?読み続けるにはここをクリック

目次

よくある質問

目次

メール転送を開始して設定する方法

推定セットアップ時間: 10分以内
強化されたプライバシー保護: 自分の情報をインターネット上で一般に検索できないようにしたい場合は、次の URL にアクセスしてください。 マイアカウント ドメイン このガイドを開始する前に、ドメインを有料プランにアップグレードしてください。 無料プランに関する公開検索可能な情報には、エイリアス、転送アドレス、受信者、およびカスタム ポート転送などの詳細設定が含まれますが、これらに限定されません。 有料プランについて詳しく知りたい場合は、 価格 ページ–それ以外の場合は読み続けてください! すべての計画は私たちの プライバシー SMTP ログ、メタデータ、電子メールを厳密に保存しないというポリシー。 他のサービスのように追跡することはありません。
入門: 以下のステップ 1 から 8 を注意深く読み、それに従ってください。のメールアドレスを必ず置き換えてください user@gmail.com メールの転送先のメール アドレスを入力します (まだ正確でない場合)。同様に必ず交換してください example.com カスタム ドメイン名を使用します (まだ正確でない場合)。
  1. ドメイン名をすでにどこかに登録している場合は、この手順を完全にスキップして、手順 2 に進む必要があります。それ以外の場合はできます ここをクリックしてドメイン名を登録してください.
  2. ドメインを登録した場所を覚えていますか?これを覚えたら、次の手順に従ってください。
    重要: 新しいタブを開いて、ドメイン レジストラーにログインする必要があります。これを自動的に行うには、下の「レジストラ」をクリックするだけです。この新しいタブでは、レジストラの DNS 管理ページに移動する必要があります。以下の「設定手順」列の下に、手順ごとのナビゲーション手順が示されています。新しいタブでこのページに移動したら、このタブに戻って以下の手順 3 に進むことができます。 開いているタブはまだ閉じないでください。今後の手順で必要になります。
    レジストラ 設定手順
    1&1 サインイン ドメインセンター (ドメインを選択してください) DNS 設定の編集
    アマゾン ルート 53 サインイン ホストゾーン (ドメインを選択してください)
    アプラスネット サインイン マイサーバー ドメイン管理 DNSマネージャー
    ブルーホスト ロックのために: サインイン ドメイン (管理横の▼アイコンをクリック) DNS
    レガシーの場合: サインイン ドメイン ゾーンエディター (ドメインを選択してください)
    クラウドフレア サインイン DNS
    DNS を簡単に サインイン DNS (ドメインを選択してください)
    DNSシンプル サインイン (ドメインを選択してください) DNS 管理
    デジタルオーシャン サインイン ネットワーキング ドメイン (ドメインを選択してください) もっと ドメインの管理
    ドメイン.com サインイン カード ビューで、ドメインの [管理] をクリックします。 リスト ビューで、 歯車のアイコン DNS とネームサーバー DNS レコード
    Domains.com
    時計
    サインイン (ドメインを選択してください) 管理 (歯車アイコンをクリック) 左側のメニューで [DNS & ネームサーバー] をクリックします。
    ドリームホスト サインイン パネル ドメイン ドメインの管理 DNS
    おとこ サインイン 概要 管理 シンプルエディター 記録
    考え サインイン (ドメインを選択してください) 管理 ゾーンを編集する
    ゴダディ
    時計
    サインイン 私のドメインの管理 (ドメインを選択してください) DNS の管理
    Google ドメイン
    時計
    サインイン (ドメインを選択してください) DNS の構成
    Namecheap
    時計
    サインイン ドメイン一覧 (ドメインを選択してください) 管理 高度な DNS
    ネットリファイ サインイン (ドメインを選択してください) Netlify DNS のセットアップ
    ネットワーク ソリューション サインイン アカウントマネージャー 私のドメイン名 (ドメインを選択してください) 管理 ドメインポイントの変更 高度な DNS
    Shopify
    時計
    サインイン 管理対象ドメイン (ドメインを選択してください) DNS 設定
    スクエアスペース サインイン ホームメニュー 設定 ドメイン (ドメインを選択してください) 高度な設定 カスタム レコード
    ヴェルセルの今 「現在」の CLI を使用する now dns add [domain] '@' MX [record-value] [priority]
    ウィーブリー サインイン ドメインページ (ドメインを選択してください) DNS
    ウィックス サインイン ドメインページ (クリック アイコン) [DNS レコードの管理] を選択します
    ジュニア サインイン ドメイン 私のドメイン
    他の
    重要: レジストラ名がここにリストされていませんか? 「$REGISTRAR で DNS レコードを変更する方法」をインターネットで検索するだけです ($REGISTRAR をレジストラの名前に置き換えます。たとえば、GoDaddy を使用している場合は、「GoDaddy で DNS レコードを変更する方法」)。
  3. レジストラの DNS 管理ページ (開いた別のタブ) を使用して、次の「MX」レコードを設定します。
    重要: 他の MX レコードが設定されていないことに注意してください。以下に示す両方のレコードが存在する必要があります。タイプミスがないことを確認してください。 mx1 と mx2 の両方が正しく綴られています。既に MX レコードが存在する場合は、完全に削除してください。 「TTL」値は 3600 である必要はありません。必要に応じて、より低い値またはより高い値にすることができます。
    名前/ホスト/エイリアス TTL タイプ 優先順位 価値
    "@"、"."、または空白 3600 MX 10 mx1.forwardemail.net
    "@"、"."、または空白 3600 MX 10 mx2.forwardemail.net
  4. レジストラの DNS 管理ページ (開いた別のタブ) を使用して、次のように設定します。 TXT 記録):
    重要: 有料プランを使用している場合は、この手順を完全にスキップして手順 5 に進む必要があります。有料プランを利用していない場合、転送されたアドレスは一般に検索可能になります – にアクセスしてください マイアカウント ドメイン 必要に応じて、ドメインを有料プランにアップグレードします。有料プランについて詳しく知りたい場合は、 価格 ページ。それ以外の場合は、以下のオプション A からオプション F までの 1 つまたは複数の組み合わせを引き続き選択できます。

    オプション A: ドメインからのすべてのメール (例: "all@example.com"、"hello@example.com" など) を特定のアドレス "user@gmail.com" に転送する場合:
    名前/ホスト/エイリアス TTL タイプ 価値
    "@"、"."、または空白 3600 TXT forward-email=user@gmail.com
    ヒント: 上記の [値] 列の値を自分のメール アドレスに置き換えてください。 「TTL」値は 3600 である必要はありません。必要に応じて、より低い値またはより高い値にすることができます。生存時間 (「TTL」) の値が小さいほど、DNS レコードに加えられた将来の変更がインターネット全体により迅速に反映されます。これは、メモリ内にキャッシュされる時間 (秒単位) と考えてください。について詳しく知ることができます フリー百科事典ウィキペディアの TTL.

    オプション B: 単一のメール アドレスを転送する必要がある場合 (例: "hello@example.com" を "user@gmail.com" に転送)。これにより、"hello+test@example.com" も "user+test@gmail.com" に転送されます。 " 自動的):
    名前/ホスト/エイリアス TTL タイプ 価値
    "@"、"."、または空白 3600 TXT forward-email=hello:user@gmail.com

    オプション C: 複数のメールを転送する場合は、コンマで区切ります。
    名前/ホスト/エイリアス TTL タイプ 価値
    "@"、"."、または空白 3600 TXT forward-email=hello:user@gmail.com,support:user@gmail.com

    オプション D: メールの転送設定は無制限に行うことができます。ただし、1 行で 255 文字を超えないようにし、各行を「forward-email=」で始めてください。以下に例を示します。
    名前/ホスト/エイリアス TTL タイプ 価値
    "@"、"."、または空白 3600 TXT forward-email=hello:user@gmail.com,support:user@gmail.com
    "@"、"."、または空白 3600 TXT forward-email=help:user@gmail.com,foo:user@gmail.com
    "@"、"."、または空白 3600 TXT forward-email=orders:user@gmail.com,baz:user@gmail.com
    "@"、"."、または空白 3600 TXT forward-email=info:user@gmail.com,beep:user@gmail.com
    "@"、"."、または空白 3600 TXT forward-email=errors:user@gmail.com,boop:user@gmail.com

    オプション E: ドメイン名を指定することもできます TXT グローバル エイリアス転送を持つレコード (たとえば、"user@example.com" は "user@example.net" に転送されます):
    名前/ホスト/エイリアス TTL タイプ 価値
    "@"、"."、または空白 3600 TXT forward-email=example.net

    オプション F: Webhook をグローバルまたは個別のエイリアスとして使用して、メールを転送することもできます。というタイトルの Webhook の例と完全なセクションを参照してください。 Webhookをサポートしていますか 下。
    名前/ホスト/エイリアス TTL タイプ 価値
    "@"、"."、または空白 3600 TXT forward-email=alias:https://requestbin.com/r/en8pfhdgcculn

    オプション G: 正規表現 (「regex」) を使用して、エイリアスを照合したり、メールを転送するための置換を処理したりすることもできます。というタイトルの正規表現の例と完全なセクションを参照してください 正規表現または正規表現をサポートしていますか 下。
    名前/ホスト/エイリアス TTL タイプ 価値
    "@"、"."、または空白 3600 TXT forward-email=alias:https://requestbin.com/r/en8pfhdgcculn

  5. レジストラの DNS 管理ページ (開いた別のタブ) を使用して、さらに次の設定を行います。 TXT 記録:
    名前/ホスト/エイリアス TTL タイプ 価値
    "@"、"."、または空白 3600 TXT v=spf1 a mx include:spf.forwardemail.net -all
    重要: Gmail (例: Send Mail As) または G Suite を使用している場合は、追加する必要があります。 include:_spf.google.com たとえば、次のようにします。

    v=spf1 a mx include:spf.forwardemail.net include:_spf.google.com -all
    ヒント: 「v=spf1」を含む同様の行が既にある場合は、追加する必要があります include:spf.forwardemail.net 既存の「include:host.com」レコードの直前、および同じ行の「-all」の前。次に例を示します。

    v=spf1 a mx include:spf.forwardemail.net include:host.com -all

    「-all」と「~all」には違いがあることに注意してください。 「-」は、一致しない場合に SPF チェックが失敗することを示し、「~」は SPF チェックが SOFTFAIL であることを示します。ドメインの偽造を防ぐために、「-all」アプローチを使用することをお勧めします。

    また、メールの送信元のホスト (Outlook など) の SPF レコードを含める必要がある場合もあります。
  6. で入手できる「レコードの確認」ツールを使用して、DNS レコードを確認します。 マイアカウント ドメイン 設定。
  7. テストメールを送信して、動作することを確認します。 DNS レコードが反映されるまでに時間がかかる場合があることに注意してください。
    ヒント: テスト メールを受信していない場合、または「このメッセージには注意してください」というテスト メールを受信した場合は、次の回答を参照してください。 テストメールが届かないのはなぜですかGmailで自分宛に送信されたテストメールが「疑わしい」と表示されるのはなぜですか それぞれ。
  8. Gmail から「名前を付けてメールを送信」する場合は、 このビデオを見て、または以下の手順に従います Gmail を使用してメールを送信する方法 下。
おめでとう! すべての手順が正常に完了しました。
ヒント: オプションのアドオンを以下に示します。これらのアドオンは完全にオプションであり、必要ない場合があることに注意してください。必要に応じて、少なくとも追加情報を提供したいと考えていました。
オプションのアドオン: あなたが Gmailを使用してメールを送信する方法 機能がある場合は、自分自身をホワイトリストに登録することをお勧めします。これを行うには、単純に Gmail で次の手順に従ってください このトピックにおいて。

Gmailを使用してメールを送信する方法

推定セットアップ時間: 10分以内
入門: 上記の手順を実行した後、 メール転送を開始して設定する方法 カスタム ドメインを使用して "Send Mail As" を行うには、上記のビデオまたは以下の手順に従ってください。
  1. あなたが持っている必要があります Gmailの2要素認証 これが機能するように有効にしました。訪問 https://www.google.com/landing/2step/ 有効にしていない場合。

  2. 2 要素認証が有効になったら (または既に有効にしている場合)、にアクセスしてください。 https://myaccount.google.com/apppasswords.

  3. 「アプリパスワードを生成するアプリとデバイスを選択してください」というプロンプトが表示されたら、次のようにします。

    • 「アプリを選択」のドロップダウンから「メール」を選択します
    • 「デバイスの選択」のドロップダウンから「その他」を選択します
    • テキスト入力を求められたら、転送元のカスタムドメインのメールアドレスを入力します(例:「hello@example.com"-これは、複数のアカウントでこのサービスを使用する場合に備えて追跡するのに役立ちます)
  4. 自動生成されたクリップボードにパスワードをコピーします

    重要: G Suite を使用している場合は、管理パネルにアクセスしてください アプリ G スイート Gmail の設定 高度な設定 「ユーザーが外部 SMTP サーバー経由でメールを送信できるようにする...」にチェックを入れます。この変更が有効になるまで少し時間がかかりますので、数分お待ちください。
  5. に行く Gmail と下 設定 アカウントとインポート としてメールを送信、「別のメールアドレスを追加」をクリックします

  6. 「名前」の入力を求められたら、メールを「差出人」として表示する名前を入力します(例:「Elon Musk」)

  7. 「メールアドレス」の入力を求められたら、上記で使用したカスタムドメインのメールアドレスを入力します(例:「hello@example.com")

  8. [エイリアスとして扱う]をオフにします

    ヒント: 受信者があなたの Gmail アドレスに直接返信することを希望する場合は、これをオンのままにします。詳しく知ることができ、 Gmail で次の手順に従ってください このトピックにおいて。
  9. 「次のステップ」をクリックして続行します

  10. 「SMTP サーバー」のプロンプトが表示されたら、入力します。 smtp.gmail.com ポートをそのままにしておきます 587

  11. 「ユーザー名」の入力を求められたら、Gmail アドレスの一部を入力します。 gmail.com 一部 (たとえば、私のメールアドレスが「ユーザー」の場合 user@gmail.com)

    重要: 「ユーザー名」部分が自動入力されている場合、 これを変更する必要があります 代わりに、Gmail アドレスのユーザー名部分に置き換えます。
  12. 「パスワード」の入力を求められたら、上記の手順2で生成したパスワードをクリップボードから貼り付けます

  13. ラジオボタンを「TLSを使用した保護された接続」にチェックしたままにします

  14. 「アカウントを追加」をクリックして続行します

  15. 新しいタブを開いて Gmail 確認メールが届くのを待ちます (「送信者」として使用しようとしているメール アドレスの所有者であることを確認する確認コードが届きます)。

  16. 到着したら、前の手順で受け取ったプロンプトに確認コードをコピーして貼り付けます

  17. 完了したら、メールに戻ってリンクをクリックし、「リクエストを確認」してください。電子メールを正しく構成するには、この手順と前の手順を実行する必要があります。

おめでとう! すべての手順が正常に完了しました。

テストメールが届かないのはなぜですか

「名前を付けて送信」機能を使用して自分宛てにテスト メールを送信している場合、次の理由により受信トレイに表示されません。 この広く知られている公式Gmailの回答.

問題が解決しない場合は、DNS 伝播の問題である可能性が最も高くなります。もう少し待ってから再試行する必要があります (または、デバイスの TTL 値を低く設定してみてください)。 TXT 記録)。

まだ問題がありますか? ファイルしてください ヘルプリクエスト そのため、問題を調査して迅速な解決策を見つけることができます。

メール転送システムはどのように機能しますか

電子メールは SMTPプロトコル。このプロトコルは、サーバーに送信されるコマンドで構成されます(最も一般的にはポート25で実行されます)。最初の接続があり、送信者はメールの送信元( "MAIL FROM")、送信先( "RCPT TO")、最後にメール自体のヘッダーと本文( "DATA")を示します。 )。電子メール転送システムのフローは、以下の各SMTPプロトコルコマンドに関連して説明されています。

  • 初期接続 (コマンド名なし、例: telnet example.com 25) - これは最初の接続です。ホワイトリストに登録されていない送信者をチェックします ブラックリスト.最後に、送信者がホワイトリストに登録されていない場合は、ホワイトリストに登録されているかどうかを確認します。 グレーリストに掲載.

  • HELO - これは、送信者の FQDN、IP アドレス、またはメール ハンドラ名を識別するための挨拶を示します。この値はなりすましの可能性があるため、このデータに依存せず、代わりに接続の IP アドレスの逆ホスト名ルックアップを使用します。

  • MAIL FROM - これは、電子メールのアドレスからのエンベロープ メールを示します。値を入力する場合は、有効な RFC 5322 電子メール アドレスである必要があります。空の値を使用できます。私達 後方散乱をチェックします ここで、MAIL FROM を ブラックリスト.最後に、レート制限のためにホワイトリストにない送信者をチェックします (次のセクションを参照してください)。 レート制限ホワイトリストへの登録 詳細については)。

  • RCPT TO - これは、電子メールの受信者を示します。これらは有効な RFC 5322 電子メール アドレスである必要があります。メッセージごとに最大 100 人のエンベロープ受信者のみが許可されます (これは、電子メールの「To」ヘッダーとは異なります)。また、有効かどうかも確認します。 送信者書き換えスキーム (「SRS」) アドレスは、SRS ドメイン名によるスプーフィングから保護するためのものです。 「返信なし」アドレスを含む受信者には、553 エラーが返されます。を参照してください 以下の「返信なし」アドレスの完全なリスト.私たちはまた、私たちに対して受信者をチェックします ブラックリスト.

  • DATA - これは、電子メールを処理するサービスのコア部分です。セクションを参照 転送用のメールをどのように処理しますか 詳細については、以下をご覧ください。

転送用のメールをどのように処理しますか

このセクションでは、SMTP プロトコル コマンドに関連するプロセスについて説明します。 DATA セクションで メール転送システムはどのように機能しますか 上記 - メールのヘッダー、本文、セキュリティをどのように処理し、どこに配信する必要があるかを判断し、接続を処理する方法です。

  1. メッセージが最大サイズの50MBを超えると、552エラーコードで拒否されます。

  2. メッセージにヘッダーがない場合、またはヘッダーを解析できなかった場合は、421エラーコードで拒否されます。

  3. メッセージに「From」ヘッダーが含まれていなかった場合、または「From」ヘッダーの値のいずれかが有効なRFC 5322電子メールアドレスではなかった場合、550エラーコードで拒否されます。

  4. メッセージに25を超える「Received」ヘッダーが含まれている場合、リダイレクトループでスタックしていると判断され、550エラーコードで拒否されます。

  5. 電子メールのフィンガープリントを使用する (セクションを参照してください 指紋)、メッセージが500回以上再試行されたことを確認し、再試行された場合は、550エラーコードで拒否されます。

  6. メッセージに「To」ヘッダーがあり、メッセージの「To」ヘッダーのいずれかがドメイン名を使用してSRSで書き換えられたアドレスに向けられた場合、それらを書き換えます(つまり、休暇の応答者に適用されます)。

  7. メッセージに「Message-ID」ヘッダーがない場合は、エンベロープMAIL FROMparsedFQDNまたはドメイン名のいずれかを使用してヘッダーを追加します。

  8. メッセージに有効な「日付」ヘッダーがない場合は、メッセージの最初の接続からの到着時刻を使用してヘッダーを追加します。

  9. を使用して電子メールをスキャンした結果をメモリ内に保存します。 スパムスキャナー.

  10. Spam Scanner から任意の結果があった場合は、554 エラー コードで拒否されます。この記事の執筆時点では、任意の結果には GTUBE テストのみが含まれます。見る https://spamassassin.apache.org/gtube/ より多くの洞察を得るために。

  11. デバッグと不正使用防止の目的で、メッセージに次のヘッダーを追加します。

    • X-ForwardEmail-Version - 現在 SemVer からのバージョン package.json 私たちのコードベースの。
    • X-ForwardEmail-Session-ID - デバッグ目的で使用されるセッション ID 値 (非実稼働環境でのみ適用されます)。
    • X-ForwardEmail-Sender - 元のエンベロープ MAIL FROM アドレス (空白でない場合)、リバース PTR クライアント FQDN (存在する場合)、および送信者の IP アドレスを含むカンマ区切りのリスト。
    • X-Report-Abuse - の値で abuse@forwardemail.net (このヘッダーがまだ設定されていない場合のみ)
    • X-Report-Abuse-To - の値で abuse@forwardemail.net (このヘッダーがまだ設定されていない場合のみ)
  12. 次に、メッセージをチェックします DKIM, SPF, ARC、 と DMARC.

    • メッセージが DMARC に失敗し、ドメインに拒否ポリシーがあった場合 (例: p=reject DMARCポリシーに含まれていました)、550 エラー コードで拒否されます。通常、ドメインの DMARC ポリシーは、 _dmarc サブドメイン TXT 記録する (例: dig _dmarc.example.com txt).
    • メッセージが SPF に失敗し、ドメインにハード フェイル ポリシー (例: -all とは対照的に、SPF ポリシーにありました ~all またはポリシーがまったくない場合)、550 エラー コードで拒否されます。通常、ドメインの SPF ポリシーは、 TXT ルート ドメインの記録 (例: dig example.com txt)。詳細については、このセクションを参照してください。 Gmailと同じようにメールを送信する SPFについて。
  13. ここで、メッセージの受信者を、 RCPT TO セクションのコマンド メール転送システムはどのように機能しますか その上。各受信者に対して、次の操作を実行します。

    • 私たちは、 TXT ドメイン名のレコード(の後の部分 @ シンボル。 example.com メールアドレスが test@example.com)。たとえば、ドメインが example.com 次のようなDNSルックアップを行います dig example.com txt.
    • すべてを解析します TXT いずれかで始まるレコード forward-email= (無料プラン)または forward-email-site-verification= (有料プラン)。ユーザーがプランをアップグレードまたはダウングレードしている間に電子メールを処理するために、両方を解析することに注意してください。
    • 解析されたこれらから TXT レコードを反復処理して、転送構成を抽出します (セクションで説明されているように) メール転送を開始して設定する方法 その上)。サポートされているのは 1 つだけです。 forward-email-site-verification= 複数の値が指定された場合、550 エラーが発生し、送信者はこの受信者に対してバウンスを受け取ります。
    • 抽出された転送構成を再帰的に繰り返して、グローバル転送、正規表現ベースの転送、およびサポートされている他のすべての転送構成(現在は「転送アドレス」と呼ばれています)を決定します。
    • 転送アドレスごとに、1つの再帰ルックアップをサポートします(これにより、指定されたアドレスでこの一連の操作が開始されます)。再帰的な一致が見つかった場合、親の結果は転送先アドレスから削除され、子が追加されます。
    • 転送先アドレスは一意性について解析されます(1つのアドレスに重複を送信したり、不要なSMTPクライアント接続を追加で生成したりしたくないため)。
    • 各転送アドレスについて、API エンドポイントに対してそのドメイン名を検索します /v1/max-forwarded-addresses (ドメインがエイリアスごとに電子メールの転送を許可するアドレスの数を決定するには、たとえばデフォルトで 10 - のセクションを参照してください。 エイリアスごとの転送の上限)。この制限を超えると、550エラーが発生し、送信者はこの受信者のバウンスを受け取ります。
    • API エンドポイントに対して元の受信者の設定を検索します /v1/settings、有料ユーザーのルックアップをサポートします (無料ユーザーのフォールバックあり)。これは、高度な設定の構成オブジェクトを返します port (番号、例: 25), has_adult_content_protection (ブール値)、 has_phishing_protection (ブール値)、 has_executable_protection (ブール値)、および has_virus_protection (ブール値)。
    • これらの設定に基づいて、Spam Scanner の結果をチェックし、エラーが発生した場合、メッセージは 554 エラー コードで拒否されます (例: has_virus_protection が有効になっている場合は、スパム スキャナの結果でウイルスをチェックします)。すべての無料プランのユーザーは、アダルト コンテンツ、フィッシング、実行可能ファイル、ウイルスに対するチェックにオプトインされることに注意してください。デフォルトでは、すべての有料プラン ユーザーもオプトインされていますが、この構成はメール転送ダッシュボードのドメインの [詳細設定] ページで変更できます)。
  14. 次に、処理された受信者の転送アドレスごとに、次の操作を実行します。

    • 住所は当社と照合されます ブラックリスト、リストされている場合は、554エラーコードが発生し、送信者はこの受信者のバウンスを受け取ります。
    • アドレスがWebhookの場合、将来の操作用にブール値を設定します(以下を参照–同様のWebhookをグループ化して、1つのPOSTリクエストと複数のPOSTリクエストを作成します)。
    • アドレスが電子メールアドレスの場合、将来の操作のためにホストを解析します(以下を参照–同様のホストをグループ化して、1つの接続と複数の個別の接続を作成して配信します)。
  15. 受信者がなく、バウンスがない場合は、「無効な受信者」という550エラーで応答します。

  16. 受信者がいる場合は、それらを反復処理して (同じホストでグループ化)、メールを配信します。セクションを参照 メール配信の問題をどのように処理しますか 詳細については、以下をご覧ください。

    • メールの送信中にエラーが発生した場合は、後で処理できるようにメモリに保存します。
    • 電子メールの送信から最も低いエラー コード (存在する場合) を取得し、それを応答コードとして使用します。 DATA 指図。これは、通常、配信されなかったメールは元の送信者によって再試行されることを意味しますが、既に配信されたメールは次回メッセージが送信されたときに再送信されません ( 指紋).
    • エラーが発生しなかった場合は、250の成功したSMTP応答ステータスコードを送信します。
    • バウンスは、500以上のステータスコード(永続的な障害)をもたらす配信が試行されたものと見なされます。
  17. バウンスが発生しなかった場合(永続的な障害)、非永続的な障害から最も低いエラーコードのSMTP応答ステータスコード(または、存在しなかった場合は250の成功したステータスコード)を返します。

  18. バウンスが発生した場合は、すべてのエラー コードの中で最も低い値を送信者に返した後、バックグラウンドでバウンス メールを送信します。ただし、最小のエラー コードが 500 以上の場合、バウンス メールは送信されません。これは、そうすると、送信者がダブル バウンス メールを受信するためです (たとえば、Gmail などのアウトバウンド MTA からのメールと、Google からのメールなど)。のセクションを参照してください。 後方散乱からどのように保護しますか 詳細については、以下をご覧ください。

メール配信の問題をどのように処理しますか

送信者の DMARC ポリシーが p=reject、および通過するSPFがあり、「From」ヘッダーに整列されたDKIM署名はありません。これは、メッセージの「From」ヘッダーを変更し、「X-Original-From」を設定し、「Reply-To」がまだ設定されていない場合は設定することを意味します。また、これらのヘッダーを変更した後、メッセージのARCシールを再シールします。

また、スタックのすべてのレベルでエラーメッセージのスマート解析を使用します。コードでは、DNSリクエスト、Node.js内部、HTTPリクエスト(たとえば、受信者の場合、408、413、429は421のSMTP応答コードにマッピングされます)はWebhookです)、メールサーバーの応答(たとえば、「defer」または「slowdown」の応答は421エラーとして再試行されます)。

私たちのロジックはダミープルーフであり、TLS / SSLエラー、接続の問題などについても再試行します。ダミープルーフの目標は、転送構成のすべての受信者への配信可能性を最大化することです。

受信者がWebhookの場合、リクエストが完了するまでに60秒のタイムアウトが許可され、最大3回の再試行が行われます(つまり、失敗するまでに合計4回のリクエストが行われます)。エラーコード408、413、および429を正しく解析し、それらをSMTP応答コード421にマップすることに注意してください。

それ以外の場合、受信者が電子メールアドレスの場合、便宜的なTLSを使用して電子メールを送信しようとします(受信者のメールサーバーで利用可能な場合はSTARTTLSを使用しようとします)。電子メールの送信中にSSLまたはTLSエラーが発生した場合、TLSなしで(STARTTLSを使用せずに)電子メールの送信を試みます。

DNS または接続エラーが発生した場合は、 DATA 421 の SMTP 応答コードをコマンドします。それ以外の場合、500 レベル以上のエラーがある場合、バウンスが送信されます。

配信しようとしているメールサーバーで1つ以上のメール交換IPアドレスがブラックリストに登録されていることが検出された場合(たとえば、スパマーを延期するために使用するテクノロジーによって)、送信者に421のSMTP応答コードを送信します。後でメッセージを再試行します(次の試行の前に問題を解決できるように、問題が通知されます)。

ブラックリストに登録されたIPアドレスをどのように処理しますか

私たちは定期的にすべての主要なDNSブラックリストを監視し、メール交換( "MX")IPアドレスのいずれかが主要なブラックリストにリストされている場合、問題が解決するまで、可能であれば関連するDNSAレコードラウンドロビンからそれを引き出します。

この記事の執筆時点では、いくつかの DNS ホワイトリストにも記載されており、ブラックリストの監視を真剣に受け止めています。問題を解決する前に問題が発生した場合は、書面でお知らせください。 support@forwardemail.net.

返信なしのアドレスとは

「返信なし」のアドレスにメールを転送することはありません。送信しようとすると、553エラーが発生します。

次のいずれかに等しい電子メールのユーザー名(大文字と小文字を区別しない)は、返信なしのアドレスと見なされます。

  • no-reply@
  • no_reply@
  • nobody@
  • noreplies@
  • noreply@

ホワイトリストはありますか

はい、DNSレベルで使用される最も一般的なルートFQDNに基づいてホワイトリストを毎日更新します。このリストは、約200,000〜300,000の一意のルートドメイン名で構成されています。

Google(Gmail)、Yahoo、Microsoft(Outlook)、Amazon(Amazon SES)、Meta(Facebook)、Twitter、Netflix、Spotifyなどの人気のあるプロバイダーが含まれています。

あなたが送信者であるか、ホワイトリストにない送信者を使用している場合、FQDN ルート ドメインまたは IP アドレスが初めて電子メールを送信すると、 レート制限グレーリストに掲載.

ホワイトリスト リクエストは次の宛先に送信できます whitelist@forwardemail.net (ホワイトリストに登録する完全な説明と理由、ウェブサイトへのリンク、およびホワイトリストに登録するビジネスの設立証明書を提供してください)。

グレーリストはありますか

はい、私たちは非常に緩いです メールのグレーリスト 使用されるポリシー。グレーリストは、ホワイトリストにない送信者にのみ適用され、キャッシュに 30 日間保持されます。

新しい送信者の場合、最初のリクエストの最初の到着時間に設定された値を使用して、キーをRedisデータベースに30日間保存します。次に、再試行ステータスコード450の電子メールを拒否し、5分が経過した場合にのみ通過を許可します。

この最初の到着時刻から5分間正常に待機した場合、電子メールは受け入れられ、この450ステータスコードは受信されません。

キーは、FQDNルートドメインまたは送信者のIPアドレスのいずれかで構成されます。これは、グレーリストを通過するすべてのサブドメインがルートドメインにも通過することを意味し、その逆も同様です(これは「非常に緩い」ポリシーの意味です)。

たとえば、メールが次の場所から送信された場合 test.example.com 電子メールが送信される前に example.com、その後からのメール test.example.com および/または example.com 接続の最初の到着時刻から 5 分間待つ必要があります。両方は作りません test.example.comexample.com それぞれが独自の 5 分間待機します (当社のグレーリスト ポリシーはルート ドメイン レベルで適用されます)。

グレーリストは、当社の送信者には適用されないことに注意してください。 ホワイトリスト (この記事の執筆時点では、Meta、Amazon、Netflix、Google、Microsoft など)。

ブラックリストはありますか

はい、私たちは独自のプライベートブラックリストを運用し、リアルタイムで自動的に更新し、検出されたスパムや悪意のあるアクティビティに基づいて手動で更新します。ブラックリストに登録された送信者は、554エラーメッセージを受け取ります。

UCEPROTECT レベル 1 ブラックリストからも取得します。 http://wget-mirrors.uceprotect.net/rbldnsd-all/dnsbl-1.uceprotect.net.gz 1 時間ごとに更新し、7 日間の有効期限で Redis データベースにフィードします。

ブラックリストの削除リクエストを送信できます whitelist@forwardemail.net (ホワイトリストに登録する完全な説明と理由、ウェブサイトへのリンク、およびホワイトリストに登録するビジネスの設立証明書を提供してください)。

レート制限はありますか

はい、送信者にのみ適用されるレート制限があります。 ホワイトリスト.

送信者が解決したFQDNルートドメイン(または)送信者のリモートIPアドレス(リバースPTRが利用できない場合)ごと、およびエンベロープ受信者ごとに、1時間あたり最大100の接続のみを許可します。レート制限のキーは、暗号化ハッシュとしてRedisデータベースに保存されます。

システムを介して電子メールを送信する場合は、すべてのIPアドレスに逆PTRが設定されていることを確認してください(そうでない場合、送信元の一意のFQDNルートドメインまたはIPアドレスごとにレート制限があります)。

Amazon SESなどの一般的なシステムを介して送信する場合、(この記事の執筆時点では)Amazon SESがホワイトリストに登録されているため、レート制限はありません。

などのドメインから送信する場合 test.abc.123.example.comの場合、レート制限が課されます example.com。多くのスパマーは、数百のサブドメインを使用して、一意のFQDNルートドメインではなく、一意のホスト名のみをレート制限する一般的なスパムフィルターを回避します。

レート制限を超える送信者は、421エラーで拒否されます。

後方散乱からどのように保護しますか

誤ったバウンスまたはバウンススパム(「後方散乱")送信者のIPアドレスに否定的な評判を引き起こす可能性があります。

後方散乱を防ぐために、次のセクションで詳しく説明する 2 つの手順を実行します。 既知のMAILFROMスパマーからのバウンスを防止する後方散乱から保護するために不要なバウンスを防止します 下。

既知のMAILFROMスパマーからのバウンスを防止する

からリストを引き出します Backscatter.org (搭載 UCEPROTECT) で http://wget-mirrors.uceprotect.net/rbldnsd-all/ips.backscatterer.org.gz 1 時間ごとにそれを Redis データベースにフィードします (優先する必要がある IP が削除された場合に備えて、事前に違いを比較します)。

MAIL FROMが空白であるか、次のユーザー名のいずれか(大文字と小文字を区別しない)が含まれている場合(電子メールの@の前の部分)、送信者IPがこのリストのIPと一致するかどうかを確認します。

  • abuse@
  • ftp@
  • hostmaster@
  • mailer-daemon@
  • mailer_daemon@
  • mailerdaemon@
  • news@
  • no-reply@
  • no_reply@
  • nobody@
  • noreplies@
  • noreply@
  • postmaster@
  • root@
  • security@
  • usenet@
  • webmaster@
  • www@

送信者の IP がリストされている場合 (および私たちの ホワイトリスト)、メッセージとともに 554 エラーを送信します The IP ${session.remoteAddress} is blacklisted by https://www.backscatterer.org/index.php?target=test&ip=${session.remoteAddress}。送信者がバックスキャッターリストとホワイトリストの両方に含まれている場合はアラートが送信されるため、必要に応じて問題を解決できます。

このセクションで説明する手法は、「SAFE MODE」の推奨事項に従っています。 https://www.backscatterer.org/?target=usage – 特定の条件がすでに満たされている場合にのみ、送信者 IP を確認します。

後方散乱から保護するために不要なバウンスを防止します

バウンスは、受信者への電子メール転送が完全に失敗したことを示す電子メールであり、電子メールは再試行されません。

バックスキャッターリストにリストされる一般的な理由は、誤った方向のバウンスまたはバウンススパムであるため、いくつかの方法でこれから保護する必要があります。

  1. 500以上のステータスコードエラーが発生した場合にのみバウンスを送信します(転送しようとしたメールが失敗した場合。たとえば、Gmailが500レベルのエラーで応答した場合)。

  2. バウンスは 1 回だけ送信します (重複送信を防ぐために、計算されたバウンス フィンガープリント キーを使用してキャッシュに保存します)。バウンス フィンガープリントは、メッセージのフィンガープリントにバウンス アドレスのハッシュとエラー コードを組み合わせたキーです。のセクションを参照してください。 指紋 メッセージのフィンガープリントがどのように計算されるかについての詳細は、 を参照してください。正常に送信されたバウンス フィンガープリントは、Redis キャッシュで 7 日後に期限切れになります。

  3. MAIL FROMが空白でなく、次のユーザー名(電子メールの@の前の部分)のいずれかが含まれていない(大文字と小文字を区別しない)場合にのみ、バウンスを送信します。このリストは、誤検知を避けたいため、上記のMAIL FROMチェックのリストよりも少し短いことに注意してください(たとえば、security @は、バウンスを取得したい有効なアドレスです。多くの人がバグバウンティプログラムにはsecurity@を使用してください)。

    • abuse@
    • mailer-daemon@
    • mailer_daemon@
    • mailerdaemon@
  4. 元のメッセージに次のヘッダーのいずれかが含まれている場合、バウンスは送信されません(大文字と小文字は区別されません)。

    • Auto-Submitted (値は no)
    • X-Auto-Response-Suppress (値は dr, autoreply, auto-reply, auto_reply、 また all)
    • List-Id
    • List-Unsubscribe
    • Feedback-ID
    • X-Auto-Reply
    • X-Autoreply
    • X-Auto-Respond
    • X-Autorespond
    • Precedence (値は bulk, autoreply, auto-reply, auto_reply、 また list)

メールの指紋をどのように判断しますか

電子メールのフィンガープリントは、電子メールの一意性を判断し、重複したメッセージが配信されないようにするために使用されます。 重複バウンス 送信されることから。

フィンガープリントは、コロンで区切られた一連の暗号化されたハッシュであり、コードベースの内部で使用されます。

これらの計算されたハッシュは、それらの値が存在する場合にのみ、配列(リスト)にプッシュされます。

  • クライアントが解決したFQDNホスト名またはIPアドレス
  • Message-ID ヘッダー値
  • Date ヘッダー値 (その場合のみ) Message-ID 存在しなかった)
  • From ヘッダー値 (その場合のみ) Message-ID 存在しなかった)
  • To ヘッダー値 (その場合のみ) Message-ID 存在しなかった)
  • Cc ヘッダー値 (その場合のみ) Message-ID 存在しなかった)
  • Subject ヘッダー値 (その場合のみ) Message-ID 存在しなかった)
  • Body 値 (その場合のみ) Message-ID 存在しなかった)

Gmailで自分宛に送信されたテストメールが「疑わしい」と表示されるのはなぜですか

自分自身にテストを送信したとき、またはあなたのエイリアスでメールを送信している相手があなたからのメールを初めて見たときに、Gmail でこのエラー メッセージが表示される場合は、 心配しないでください – これは Gmail に組み込まれている安全機能です。

「安全そう」をクリックするだけです。たとえば、メールの送信機能を使用して(他の人に)テストメッセージを送信した場合、そのメッセージは表示されません。

ただし、このメッセージが表示される場合は、通常、あなたのメールの送信元に慣れているためです。 john@gmail.com それ以外の john@customdomain.com (ほんの一例)。 Gmail は、万が一に備えて安全であることを確認するためにユーザーに警告します。回避策はありません。

Gmailでvia forwardemail dot netを削除できますか

これは、 Gmailを使用してメールを送信する方法 特徴。現在、これに対する回避策はなく、(当社だけでなく) すべてのサービス プロバイダーに影響します。回避策は、カスタム SMTP サーバーを使用することです。ただし、SMTP はまだ提供していません。

これを軽減する独自のSMTPサービス(転送だけでなく、電子メール全般)をリリースする予定です。 Gmailはこれを自動的に追加し、現在の回避策はありません。私たちと同様の機能を備えた他の電子メール転送サービスでも、これと同じ問題が発生します(他の電子メール転送ソリューションは、私たちが提供するレベルのプライバシーを提供しません)。

これがリリースされたときに通知を受け取りたい場合は、電子メールで送信できます smtp@forwardemail.net リリースされたらお知らせします。または、まだアカウントを作成していない場合は、ここでサインアップしてください。

25以外のポートにメールを転送できますか(例:ISPがポート25をブロックしている場合)

はい、2020年5月5日現在、この機能が追加されています。現在、この機能はエイリアス固有ではなくドメイン固有です。エイリアス固有であることが必要な場合は、Googleに連絡してニーズをお知らせください。

強化されたプライバシー保護: 有料プラン (プライバシー保護が強化されています) をご利用の場合は、次の URL にアクセスしてください。 マイアカウント ドメインで、ドメインの横にある [セットアップ] をクリックし、[詳細設定] をクリックします。有料プランについて詳しく知りたい場合は、 価格 ページ。それ以外の場合は、引き続き以下の手順に従ってください。

無料プランの場合は、新しい DNS を追加するだけです TXT 以下に示すように記録しますが、ポートを 25 から選択したポートに変更します。

たとえば、 example.com 25 ではなく 1337 のエイリアス受信者の SMTP ポートに転送するには:

名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email-port=1337
ヒント: カスタム ポート フォワーディング セットアップの最も一般的なシナリオは、example.com に送信されるすべてのメールを、example.com の別のポート (ポート 25 の SMTP 標準以外) に転送する場合です。これをセットアップするには、次のコードを追加するだけです。 TXT キャッチオールレコード。
名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=example.com

有料プランの返金保証はありますか

はい!プランが最初に開始されてから30日以内にアカウントをアップグレード、ダウングレード、またはキャンセルすると、自動払い戻しが行われます。これは、初めてのお客様にのみ適用されます。

プランを切り替えた場合、差額を按分して返金しますか

プランを切り替えた場合、差額を按分したり返金したりすることはありません。代わりに、既存のプランの有効期限からの残りの期間を、新しいプランに最も近い相対期間(月ごとに切り捨て)に変換します。

有料プランを最初に開始してから30日以内に有料プラン間でアップグレードまたはダウングレードすると、既存のプランから全額が自動的に返金されます。

Webhookをサポートしていますか

はい、2020年5月15日以降、この機能が追加されました。任意の受信者と同じようにWebhookを追加するだけです! WebhookのURLの前に「http」または「https」プロトコルが付いていることを確認してください。

強化されたプライバシー保護: 有料プラン (プライバシー保護が強化されています) をご利用の場合は、次の URL にアクセスしてください。 マイアカウント ドメイン ドメインの横にある [エイリアス] をクリックして、Webhook を設定します。有料プランについて詳しく知りたい場合は、 価格 ページ。それ以外の場合は、引き続き以下の手順に従ってください。

無料プランの場合は、新しい DNS を追加するだけです TXT 以下のように記録します。

たとえば、 alias@example.com 新しいものに転送する リクエストビン テスト エンドポイント:

名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=alias:https://requestbin.com/r/en8pfhdgcculn

または、すべての電子メールが必要な場合もあります。 example.com このエンドポイントに転送するには:

名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=https://requestbin.com/r/en8pfhdgcculn

Webhookに関する追加の注意事項は次のとおりです。

  • Webhook HTTP リクエストは、エンドポイント POST リクエストごとに最大 60 秒のタイムアウトで、最大 3 回再試行されます。で使用されるデフォルトのステータス コードとエラー コードに基づいて、自動的に再試行されます。 スーパーエージェントの再試行方法.

  • リソースを節約し、応答時間を短縮するために、同じエンドポイントへの Webhook HTTP リクエストを複数ではなく 1 つのリクエストにグループ化します。たとえば、次の宛先に電子メールを送信すると、 webhook1@example.com, webhook2@example.com、 と webhook3@example.com、これらはすべて同じヒットするように構成されています ちょうど エンドポイント URL の場合、リクエストは 1 つだけ行われます。厳密に等しいエンドポイント マッチングによってグループ化します。

  • を使用することに注意してください メールパーサー ライブラリの「simpleParser」メソッドを使用して、メッセージを JSON フレンドリーなオブジェクトに解析します。

  • 文字列としての生の電子メール値は、プロパティ「raw」として指定されます。

  • 認証結果は、プロパティ「dkim」、「spf」、「arc」、「dmarc」、および「bimi」として提供されます。

  • 解析された電子メールヘッダーはプロパティ「headers」として指定されますが、反復と解析を容易にするために「headerLines」を使用できることにも注意してください。

  • このWebhookのグループ化された受信者はグループ化され、プロパティ「recipients」として指定されます。

  • SMTP セッション情報は、プロパティ「session」として与えられます。これには、メッセージの送信者、メッセージの到着時間、HELO、およびクライアント ホスト名に関する情報が含まれます。クライアントのホスト名の値 session.clientHostname FQDN (リバース PTR ルックアップから) または session.remoteAddress かっこで囲みます (例: "[127.0.0.1]").

  • 添付ファイルがある場合、それらは attachments バッファ値を持つ配列。次のような JavaScript を使用したアプローチを使用して、それらを解析してコンテンツに戻すことができます。

    const data = [
      104,
      101,
      108,
      108,
      111,
      32,
      119,
      111,
      114,
      108,
      100,
      33
    ];
    

    // // outputs "hello world!" to the console // (this is the content from the filename "text1.txt" in the example JSON request payload above) // console.log(Buffer.from(data).toString());

ヒント: 転送されたメールからの Webhook リクエストがどのように見えるか知りたいですか?以下に例を示します。
{
  "attachments": [
    {
      "type": "attachment",
      "content": {
        "type": "Buffer",
        "data": [
          104,
          101,
          108,
          108,
          111,
          32,
          119,
          111,
          114,
          108,
          100,
          33
        ]
      },
      "contentType": "text/plain",
      "partId": "2",
      "release": null,
      "contentDisposition": "attachment",
      "filename": "text1.txt",
      "headers": {},
      "checksum": "fc3ff98e8c6a0d3087d515c0473f8677",
      "size": 12
    }
  ],
  "headers": "ARC-Seal: i=1; a=rsa-sha256; t=1653506802; cv=none; d=forwardemail.net;\r\n s=default;\r\n b=R6QJ0tGwwjg2VPxiAlVIKxsg3jEPtRGKPTIOdZNWuhWrbssttFdOYzRRqvacDyN5SLoyDhVye\r\n DUA/64IxANXdHVFlpR258Yp7WxLDv2gtJD5vNSKYmUJZOWk1TynmlqTYrp0Vuqg2xIUjIlPBWAJ\r\n PPNx4JvOLjJuWYynU2qIWz0=\r\nARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;\r\n d=forwardemail.net; h=MIME-Version: Date: Message-ID: From: Content-Type;\r\n q=dns/txt; s=default; t=1653506802;\r\n bh=cEYDoyTy+Ub29XZt/zXR+sprfUE6BW0y5cHfah01PT4=;\r\n b=F/t56AAXr2Kv3G6VsbdT5OKDVJf2ulhwLiTM18Ra4tDPUKPSGSLKrWvxiXEg5NMWwdWnsOYrL\r\n r3YSm4uMxVMhHZbHm/sUu4QZq5/18hQsAkCv6fI9ifTjDwBrN5zpLOhPoZFFo+TyvHxiII3Xv3L\r\n UEzmUIIaJRX6tboQ160tino=\r\nARC-Authentication-Results: i=1; mx1.forwardemail.net;\r\n dkim=none (message not signed);\r\n spf=none (mx1.forwardemail.net: example.net does not designate permitted sender hosts) smtp.mailfrom=test@example.net smtp.helo=user.oem.local;\r\n dmarc=none header.from=example.com;\r\n bimi=skipped (DMARC not enabled)\r\nReceived-SPF: none (mx1.forwardemail.net: example.net does not designate permitted sender hosts) client-ip=127.0.0.1;\r\nAuthentication-Results: mx1.forwardemail.net;\r\n dkim=none (message not signed);\r\n spf=none (mx1.forwardemail.net: example.net does not designate permitted sender hosts) smtp.mailfrom=test@example.net smtp.helo=user.oem.local;\r\n dmarc=none header.from=example.com;\r\n bimi=skipped (DMARC not enabled)\r\n",
  "headerLines": [
    {
      "key": "arc-seal",
      "line": "ARC-Seal: i=1; a=rsa-sha256; t=1653506802; cv=none; d=forwardemail.net;\r\n s=default;\r\n b=R6QJ0tGwwjg2VPxiAlVIKxsg3jEPtRGKPTIOdZNWuhWrbssttFdOYzRRqvacDyN5SLoyDhVye\r\n DUA/64IxANXdHVFlpR258Yp7WxLDv2gtJD5vNSKYmUJZOWk1TynmlqTYrp0Vuqg2xIUjIlPBWAJ\r\n PPNx4JvOLjJuWYynU2qIWz0="
    },
    {
      "key": "arc-message-signature",
      "line": "ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;\r\n d=forwardemail.net; h=MIME-Version: Date: Message-ID: From: Content-Type;\r\n q=dns/txt; s=default; t=1653506802;\r\n bh=cEYDoyTy+Ub29XZt/zXR+sprfUE6BW0y5cHfah01PT4=;\r\n b=F/t56AAXr2Kv3G6VsbdT5OKDVJf2ulhwLiTM18Ra4tDPUKPSGSLKrWvxiXEg5NMWwdWnsOYrL\r\n r3YSm4uMxVMhHZbHm/sUu4QZq5/18hQsAkCv6fI9ifTjDwBrN5zpLOhPoZFFo+TyvHxiII3Xv3L\r\n UEzmUIIaJRX6tboQ160tino="
    },
    {
      "key": "arc-authentication-results",
      "line": "ARC-Authentication-Results: i=1; mx1.forwardemail.net;\r\n dkim=none (message not signed);\r\n spf=none (mx1.forwardemail.net: example.net does not designate permitted sender hosts) smtp.mailfrom=test@example.net smtp.helo=user.oem.local;\r\n dmarc=none header.from=example.com;\r\n bimi=skipped (DMARC not enabled)"
    },
    {
      "key": "received-spf",
      "line": "Received-SPF: none (mx1.forwardemail.net: example.net does not designate permitted sender hosts) client-ip=127.0.0.1;"
    },
    {
      "key": "authentication-results",
      "line": "Authentication-Results: mx1.forwardemail.net;\r\n dkim=none (message not signed);\r\n spf=none (mx1.forwardemail.net: example.net does not designate permitted sender hosts) smtp.mailfrom=test@example.net smtp.helo=user.oem.local;\r\n dmarc=none header.from=example.com;\r\n bimi=skipped (DMARC not enabled)"
    },
    {
      "key": "x-forwardemail-sender",
      "line": "X-ForwardEmail-Sender: rfc822; test@example.net"
    },
    {
      "key": "x-forwardemail-session-id",
      "line": "X-ForwardEmail-Session-ID: w2czxgznghn5ryyw"
    },
    {
      "key": "x-forwardemail-version",
      "line": "X-ForwardEmail-Version: 9.0.0"
    },
    {
      "key": "content-type",
      "line": "Content-Type: multipart/mixed; boundary=\"--_NmP-179a735428ca7575-Part_1\""
    },
    {
      "key": "from",
      "line": "From: some <random@example.com>"
    },
    {
      "key": "message-id",
      "line": "Message-ID: <69ad5fc2-91cb-728f-ae5c-eeedc5f267b6@example.net>"
    },
    {
      "key": "date",
      "line": "Date: Wed, 25 May 2022 19:26:41 +0000"
    },
    {
      "key": "mime-version",
      "line": "MIME-Version: 1.0"
    }
  ],
  "html": "<strong>some random text</strong>",
  "text": "some random text",
  "textAsHtml": "<p>some random text</p>",
  "date": "2022-05-25T19:26:41.000Z",
  "from": {
    "value": [
      {
        "address": "random@example.com",
        "name": "some"
      }
    ],
    "html": "<span class=\"mp_address_group\"><span class=\"mp_address_name\">some</span> &lt;<a href=\"mailto:random@example.com\" class=\"mp_address_email\">random@example.com</a>&gt;</span>",
    "text": "some <random@example.com>"
  },
  "messageId": "<69ad5fc2-91cb-728f-ae5c-eeedc5f267b6@example.net>",
  "raw": "ARC-Seal: i=1; a=rsa-sha256; t=1653506802; cv=none; d=forwardemail.net;\r\n s=default;\r\n b=R6QJ0tGwwjg2VPxiAlVIKxsg3jEPtRGKPTIOdZNWuhWrbssttFdOYzRRqvacDyN5SLoyDhVye\r\n DUA/64IxANXdHVFlpR258Yp7WxLDv2gtJD5vNSKYmUJZOWk1TynmlqTYrp0Vuqg2xIUjIlPBWAJ\r\n PPNx4JvOLjJuWYynU2qIWz0=\r\nARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed;\r\n d=forwardemail.net; h=MIME-Version: Date: Message-ID: From: Content-Type;\r\n q=dns/txt; s=default; t=1653506802;\r\n bh=cEYDoyTy+Ub29XZt/zXR+sprfUE6BW0y5cHfah01PT4=;\r\n b=F/t56AAXr2Kv3G6VsbdT5OKDVJf2ulhwLiTM18Ra4tDPUKPSGSLKrWvxiXEg5NMWwdWnsOYrL\r\n r3YSm4uMxVMhHZbHm/sUu4QZq5/18hQsAkCv6fI9ifTjDwBrN5zpLOhPoZFFo+TyvHxiII3Xv3L\r\n UEzmUIIaJRX6tboQ160tino=\r\nARC-Authentication-Results: i=1; mx1.forwardemail.net;\r\n dkim=none (message not signed);\r\n spf=none (mx1.forwardemail.net: example.net does not designate permitted sender hosts) smtp.mailfrom=test@example.net smtp.helo=user.oem.local;\r\n dmarc=none header.from=example.com;\r\n bimi=skipped (DMARC not enabled)\r\nReceived-SPF: none (mx1.forwardemail.net: example.net does not designate permitted sender hosts) client-ip=127.0.0.1;\r\nAuthentication-Results: mx1.forwardemail.net;\r\n dkim=none (message not signed);\r\n spf=none (mx1.forwardemail.net: example.net does not designate permitted sender hosts) smtp.mailfrom=test@example.net smtp.helo=user.oem.local;\r\n dmarc=none header.from=example.com;\r\n bimi=skipped (DMARC not enabled)\r\nX-ForwardEmail-Sender: rfc822; test@example.net\r\nX-ForwardEmail-Session-ID: w2czxgznghn5ryyw\r\nX-ForwardEmail-Version: 9.0.0\r\nContent-Type: multipart/mixed; boundary=\"--_NmP-179a735428ca7575-Part_1\"\r\nFrom: some <random@example.com>\r\nMessage-ID: <69ad5fc2-91cb-728f-ae5c-eeedc5f267b6@example.net>\r\nDate: Wed, 25 May 2022 19:26:41 +0000\r\nMIME-Version: 1.0\r\n\r\n----_NmP-179a735428ca7575-Part_1\r\nContent-Type: multipart/alternative;\r\n boundary=\"--_NmP-179a735428ca7575-Part_2\"\r\n\r\n----_NmP-179a735428ca7575-Part_2\r\nContent-Type: text/plain; charset=utf-8\r\nContent-Transfer-Encoding: 7bit\r\n\r\nsome random text\r\n----_NmP-179a735428ca7575-Part_2\r\nContent-Type: text/html; charset=utf-8\r\nContent-Transfer-Encoding: 7bit\r\n\r\n<strong>some random text</strong>\r\n----_NmP-179a735428ca7575-Part_2--\r\n\r\n----_NmP-179a735428ca7575-Part_1\r\nContent-Type: text/plain; name=text1.txt\r\nContent-Transfer-Encoding: base64\r\nContent-Disposition: attachment; filename=text1.txt\r\n\r\naGVsbG8gd29ybGQh\r\n----_NmP-179a735428ca7575-Part_1--\r\n",
  "dkim": {
    "headerFrom": [
      "random@example.com"
    ],
    "envelopeFrom": "test@example.net",
    "results": [
      {
        "status": {
          "result": "none",
          "comment": "message not signed"
        },
        "info": "dkim=none (message not signed)"
      }
    ]
  },
  "spf": {
    "domain": "example.net",
    "client-ip": "127.0.0.1",
    "helo": "user.oem.local",
    "envelope-from": "test@example.net",
    "status": {
      "result": "none",
      "comment": "mx1.forwardemail.net: example.net does not designate permitted sender hosts",
      "smtp": {
        "mailfrom": "test@example.net",
        "helo": "user.oem.local"
      }
    },
    "header": "Received-SPF: none (mx1.forwardemail.net: example.net does not designate permitted sender hosts) client-ip=127.0.0.1;",
    "info": "spf=none (mx1.forwardemail.net: example.net does not designate permitted sender hosts) smtp.mailfrom=test@example.net smtp.helo=user.oem.local",
    "lookups": {
      "limit": 50,
      "count": 1
    }
  },
  "arc": {
    "status": {
      "result": "none"
    },
    "i": 0,
    "authResults": "mx1.forwardemail.net;\r\n dkim=none (message not signed);\r\n spf=none (mx1.forwardemail.net: example.net does not designate permitted sender hosts) smtp.mailfrom=test@example.net smtp.helo=user.oem.local;\r\n dmarc=none header.from=example.com;\r\n bimi=skipped (DMARC not enabled)"
  },
  "dmarc": {
    "status": {
      "result": "none",
      "header": {
        "from": "example.com"
      }
    },
    "domain": "example.com",
    "info": "dmarc=none header.from=example.com"
  },
  "bimi": {
    "status": {
      "header": {},
      "result": "skipped",
      "comment": "DMARC not enabled"
    },
    "info": "bimi=skipped (DMARC not enabled)"
  },
  "recipients": [
    "webhook1@webhooks.net"
  ],
  "session": {
    "remoteAddress": "127.0.0.1",
    "remotePort": 65138,
    "clientHostname": "[127.0.0.1]",
    "hostNameAppearsAs": "user.oem.local",
    "sender": "test@example.net",
    "mta": "mx1.forwardemail.net",
    "arrivalDate": "2022-05-25T19:26:41.423Z",
    "arrivalTime": 1653506801423
  }
}

正規表現または正規表現をサポートしていますか

はい、2021年9月27日の時点で、この機能を追加しました。エイリアスを照合して置換を実行するための正規表現(「regex」)を簡単に記述できます。

正規表現でサポートされているエイリアスは、 / で終わります / 受信者は電子メール アドレスまたは Webhook です。受信者には、正規表現置換のサポートを含めることもできます (例: $1, $2).

次の 2 つの正規表現フラグをサポートしています。 ig.の大文字と小文字を区別しないフラグ i は永続的なデフォルトであり、常に適用されます。のグローバルフラグ g エンディングを付けることであなたが追加することができます //g.

私たちもサポートしていることに注意してください エイリアス機能を無効にする 受信者部分は正規表現をサポートしています。

では正規表現はサポートされていません 無料のグローバルバニティドメイン (これはセキュリティ上の脆弱性である可能性があるため)。

強化されたプライバシー保護: 有料プラン (プライバシー保護が強化されています) をご利用の場合は、次の URL にアクセスしてください。 マイアカウント ドメイン ドメインの横にある [エイリアス] をクリックして、正規表現を設定します。有料プランについて詳しく知りたい場合は、 価格 ページ。それ以外の場合は、引き続き以下の手順に従ってください。

無料プランの場合は、新しい DNS を追加するだけです TXT 以下に示す例の 1 つ以上を使用して記録します。

簡単な例: 「elon@example.com」または「musk@example.com」に送信されるすべてのメールを「user@gmail.com」に転送する場合:
名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=/^(elon|musk)$/:user@gmail.com
名姓置換の例: あなたの会社のすべての電子メール アドレスが「firstname.lastname@example.com」パターンであると想像してください。 `firstname.lastname@example.com` のパターンに送られるすべてのメールを、置換サポート付きで `firstname.lastname@company.com` に転送したい場合 (RegExrでテストを表示):
名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=/^([A-Za-z]+)+\.([A-Za-z]+)+$/:$1.$2@company.com
プラスシンボルフィルタリング置換の例: `info@example.com` または `support@example.com` に送信されるすべてのメールをそれぞれ `user+info@gmail.com` または `user+support@gmail.com` に転送する場合 (置換サポートあり) ) (RegExrでテストを表示):
名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=/^(support|info)$/:user+$1@gmail.com
Webhookクエリ文字列置換の例: おそらく、`example.com` に送られるすべてのメールを ウェブフック メールアドレスのユーザー名部分の値を持つ「to」の動的クエリ文字列キーがあります(RegExrでテストを表示):
名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=/^(.*?)$/:https://example.com/webhook?username=$1
無効化の例: 特定のパターンに一致するすべての電子メールを無効にする場合 ( 特定のエイリアスを無効にできますか)、感嘆符 "!" を使用して同じアプローチを使用するだけです。
名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=/^(elon|musk)$/:!
ヒント: 正規表現の書き方に興味がありますか、または置換をテストする必要がありますか?無料の正規表現テスト Web サイトにアクセスできます 正規表現https://regexr.com.

このメール転送サービスを「フォールバック」または「フォールオーバー」MXサーバーとして使用できますか

いいえ、一度に使用できるメール交換サーバーは1つだけなので、お勧めしません。優先順位の設定ミスやメールサーバーがMX交換の優先順位チェックを尊重していないため、フォールバックは通常再試行されません。

特定のエイリアスを無効にできますか

はい! 2020 年 2 月 6 日の時点で、この機能を追加しました。 DNSを編集するだけ TXT エイリアスを記録し、先頭に感嘆符を付けます。 「:」マッピングを保持する必要があることに注意してください。これは、これをオフに切り替える場合に必要になるためです (また、有料プランでのインポートにも使用されます)。

エイリアスの前に「!」を付けると(感嘆符)その後も、このアドレスに送信を試みた送信者には正常な応答コードが返されますが、電子メール自体はどこにも送信されません。ブラックホールに。

無効なアドレスに送信された電子メールは、250のSMTP応答ステータスコード(受け入れ済み)で応答しますが、電子メールは実際には受信者に配信されません。

たとえば、 alias@example.com ~への流れを止める user@gmail.com:

名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=!alias:user@gmail.com
ヒント: 転送された受信者のアドレスを単純に「nobody@forwardemail.net」に書き換えることもできます。これは、以下の例のように、誰にもルーティングされません。
名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=!alias:nobody@forwardemail.net
ヒント: セキュリティを強化したい場合は、以下の例のように、":user@gmail.com" (または ":nobody@forwardemail.net") の部分を削除して、"!alias" だけを残すこともできます。
名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=!alias

複数の受信者にメールを転送できますか

そのとおり。複数の受信者を指定するだけです TXT 記録。

たとえば、次の宛先にメールが必要な場合 hello@example.com 転送される user+a@gmail.comuser+b@gmail.com、それから私の TXT レコードは次のようになります。

名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=hello:user+a@gmail.com,hello:user+b@gmail.com

または、次のように2つの別々の行で指定することもできます。

名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=hello:user+a@gmail.com
"@"、"."、または空白 3600 TXT forward-email=hello:user+b@gmail.com

それはあなた次第です!

複数のグローバルキャッチオール受信者を指定できますか

はい、できます。複数のグローバルキャッチオール受信者を指定するだけです TXT 記録。

たとえば、次の宛先に送信されるすべての電子メールが必要な場合 *@example.com (アスタリスクは、ワイルドカードまたはキャッチオールを意味します) に転送されます user+a@gmail.comuser+b@gmail.com、それから私の TXT レコードは次のようになります。

名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=user+a@gmail.com,user+b@gmail.com

または、次のように2つの別々の行で指定することもできます。

名前/ホスト/エイリアス TTL タイプ 価値
"@"、"."、または空白 3600 TXT forward-email=user+a@gmail.com
@、"."、または空白 3600 TXT forward-email=user+b@gmail.com

それはあなた次第です!

エイリアスごとに転送できるメールアドレスの数に上限はありますか

はい、デフォルトの制限は 10 です。これは、ドメイン名に 10 個のエイリアスしか持てないという意味ではありません。エイリアスはいくつでも作成できます (無制限)。つまり、1 つのエイリアスを 10 個の一意の電子メール アドレスにのみ転送できます。あなたが持っている可能性があります hello:user+1@gmail.com, hello:user+2@gmail.com, hello:user+3@gmail.com、… (1 から 10 まで) – およびすべての宛先への電子メール hello@example.com に転送されます user+1@gmail.com, user+2@gmail.com, user+3@gmail.com、…(1〜10)。

ヒント: エイリアスごとに 10 人を超える受信者が必要ですか?メールをお送りいただければ、アカウントの上限を引き上げさせていただきます。

メールを再帰的に転送できますか

はい、できますが、上限を守る必要があります。あなたが持っている場合 hello:elon@example.comelon:user@gmail.com、次に電子メールで hello@example.com に転送されます elon@example.comuser@gmail.com。メールを再帰的に転送しようとすると、エラーがスローされることに注意してください。

許可なく私のメール転送を登録解除または登録できますか

MX を使用し、 TXT 検証を記録するため、このサービスのそれぞれの MX と TXT レコード、その後、あなたは登録されています。それらを削除すると、登録が解除されます。あなたはドメインと DNS 管理の所有権を持っているため、誰かがそれにアクセスできる場合、それは問題です。

無料ですか

有料プランにアップグレードしたユーザーのおかげで、サービスは引き続き実行されます。クローズドソースの転送サービスを使用している(そしてその後プライバシーとセキュリティを危険にさらす)人々に無料の代替手段を提供したいと考えています。

メールの最大サイズ制限とは

デフォルトでは、コンテンツ、ヘッダー、添付ファイルを含む50 MBのサイズ制限があります。 GmailやOutlookなどのサービスでは25 MBのサイズ制限のみが許可されていることに注意してください。これらのプロバイダーのアドレスに送信するときに制限を超えると、エラーメッセージが表示されます。

ファイルサイズの制限を超えると、適切な応答コードのエラーが返されます。

メールとその内容を保存していますか

いいえ、絶対に違います。私たちを参照してください 個人情報保護方針.

メールのログを保存しますか

いいえ、絶対に違います。私たちを参照してください 個人情報保護方針.

私のメールを読んでくれますか

いいえ、絶対に違います。 SMTP ログは保存されません。私たちを参照してください 個人情報保護方針.

他の多くの電子メール転送サービスは保存されており、潜在的にあなたの電子メールを読む可能性があります。転送された電子メールをディスクストレージに保存する必要がある理由はありません。そのため、すべてをメモリ内で実行する最初のオープンソースソリューションを設計しました。

私たちは、あなたにはプライバシーの権利があるべきだと信じており、それを厳重に尊重します。サーバーにデプロイされるコードは GitHubのオープンソースソフトウェア 透明性と信頼を築くために。

Gmailエイリアスのプラス+記号をサポートしていますか

そのとおり。

サブドメインをサポートしていますか

そのとおり。名前/ホスト/エイリアスとして「@」、「。」、または空白を使用する代わりに、値としてサブドメイン名を使用するだけです。

お望みならば foo.example.com メールを転送するには、次のように入力します foo DNS 設定の名前/ホスト/エイリアスの値として (MX と TXT 記録)。

これは私のメールのヘッダーを転送しますか

そのとおり。

これは十分にテストされていますか

はい、それはで書かれたテストを持っています エイバ コードカバレッジもあります。

SMTP応答メッセージとコードを渡しますか

そのとおり。たとえば、メールを送信する場合 hello@example.com に転送するように登録されています user@gmail.com、「mx..forwardemail.net」または「mx2.forwardemail.net」にあるプロキシサーバーの代わりに、「gmail.com」SMTPサーバーからのSMTP応答メッセージとコードが返されます。

スパマーを防ぎ、メール転送の評判を確実にするにはどうすればよいですか

セクションをご覧ください メール転送システムはどのように機能しますか, メール配信の問題をどのように処理しますか、 と ブラックリストに登録されたIPアドレスをどのように処理しますか その上。

スパムメールを受信した場合はどうすればよいですか

(可能であれば)電子メールリストから退会し、送信者をブロックする必要があります。

メッセージをスパムとして報告するのではなく、手動でキュレーションされ、プライバシーに重点を置いた不正使用防止システムに転送してください。

スパムを転送する電子メールアドレスは次のとおりです。 虐待@ forwardemail.net

これでGmailで「名前を付けてメールを送信」できますか

はい! 2018 年 10 月 2 日の時点で、この機能を追加しました。見る Gmailを使用してメールを送信する方法 その上!

DNS 構成で Gmail の SPF レコードも設定する必要があります。 TXT 記録。

重要: Gmail (例: Send Mail As) または G Suite を使用している場合は、追加する必要があります。 include:_spf.google.com あなたのSPFに TXT たとえば、次のように記録します。

v=spf1 a mx include:spf.forwardemail.net include:_spf.google.com -all

これでOutlookで「名前を付けてメールを送信」できますか

はい! 2018年10月2日より、この機能が追加されました。以下のマイクロソフトからの2つのリンクをご覧ください。

また、DNS 構成で Outlook の SPF レコードを設定する必要があります。 TXT 記録。

重要: Microsoft Outlook または Live.com を使用している場合は、追加する必要があります include:spf.protection.outlook.com あなたのSPFに TXT たとえば、次のように記録します。

v=spf1 a mx include:spf.forwardemail.net include:spf.protection.outlook.com -all

これでApple MailとiCloud Mailで「名前を付けてメールを送信」できますか

残念ながら、どのサービスを使用しているかに関係なく、Appleはこれを許可しません。ただし、ドメインのメールアカウントとともにメールアプリを使用できます。

これで無制限のメールを転送できますか

はい。ただし、「比較的不明な」送信者は、ホスト名または IP ごとに 1 時間あたり 1,000 接続に制限されています。のセクションを参照してください。 レート制限グレイリスト その上。

「比較的知られていない」とは、 ホワイトリスト.

この制限を超えると、送信者のメールサーバーに後で再試行するように指示する「421」応答コードが送信されます。

メールアドレスにプロフィール写真を追加するには

Gmailを使用している場合は、次の手順に従ってください。

  1. に行く https://google.com すべてのメール アカウントからサインアウトする
  2. 「サインイン」をクリックし、ドロップダウンで「その他のアカウント」をクリックします
  3. 「別のアカウントを使用」を選択します
  4. 「アカウントを作成」を選択します
  5. 「代わりに現在のメールアドレスを使用する」を選択します
  6. カスタムドメイン名のメールアドレスを入力してください
  7. メールアドレスに送信された確認メールを取得する
  8. このメールの確認コードを入力してください
  9. 新しいGoogleアカウントの完全なプロフィール情報
  10. すべてのプライバシーおよび利用規約のポリシーに同意する
  11. に行く https://google.com 右上隅にあるプロフィール アイコンをクリックし、[変更] ボタンをクリックします。
  12. アカウントの新しい写真またはアバターをアップロードします
  13. 変更が反映されるまでに約1〜2時間かかりますが、非常に速い場合もあります。
  14. テストメールを送信すると、プロフィール写真が表示されます。

無料保護と拡張保護の違いは何ですか

無料プランでは、パブリックDNSレコードを使用して転送構成を保存する必要があります。無料プランを利用している場合は、コンピューターを持っている人なら誰でも、ターミナルで転送構成を検索できます。無料プランとは異なり、拡張保護プランでは、暗号で生成されたランダムな文字列を使用して、転送構成を非公開で保存します。

無料プラン強化された保護計画
forward-email=user@gmail.comforward-email-site-verification=m8d7o8K4Il

メールのベストプラクティスをサポートしていますか

はい。すべてのプランでSPF、DKIM、DMARC、ARC、SRSのサポートが組み込まれています。また、これらの仕様の元の作成者や他の電子メールの専門家と幅広く協力して、完璧さと高い配信可能性を確保しています。

1つの価格で無制限のドメインを提供していますか

はい。どのプランを使用しているかに関係なく、月額料金は1つだけです。これは、すべてのドメインをカバーします。

どの支払い方法を受け入れますか

私たちは、カード、財布、銀行振込を使用して受け入れます ペイパル – 1 回限りの支払い、または毎月、四半期ごと、または毎年のサブスクリプションの場合。

価格を上げることはありますか

いいえ。価格が上がることはありません。他社とは異なり、サービスを停止することもありません。

ドメイン名でDNSルックアップを実行する方法

CloudFlare のプライバシー優先の消費者向け DNS サービスを使用します ( ここでの発表)。設定しました 1.1.1.31.0.0.3 DNS サーバーとして (を参照) https://developers.cloudflare.com/1.1.1.1/1.1.1.1-for-families/) を使用して /etc/resolv.conf 私たちのサーバーとテスト環境で。

このサービスはどれくらい速いですか

最新バージョンの v2 (2019 年 5 月 6 日にリリース) は、v1 から大幅に書き直され、ストリームによるパフォーマンスに重点を置いています。 Nodemailerの 多作の作家アンドリス・ラインマン (@ andris9)を使用してスイッチをオフにするのに役立ちました mailparser ライブラリと使用 mailsplit 代わりに、本文に影響を与えずにメッセージのヘッダーと本文を分割するカスタム変換ロジックを使用します。これにより、ヘッダーに対する操作を非常に高速に実行できます (セキュリティ チェックや SPF/DKIM/DMARC 準拠など)。

言い換えると、このサービスの最新バージョンは純粋に現在ストリームを使用しており、高速です。 古いバージョンの v1 にも、最適な操作順序ではないロジックがいくつかありましたが、v2 では最初にメモリ/ネットワーク負荷の低い操作を行います (可能な場合はできるだけ早く戻り、SMTP クライアントにできるだけ早く応答を送信します)。速度の最適化、機能の強化、およびこのサービスの改善を継続的に行う予定です。

どの時点でも、ディスクに書き込んだり、メールを保存したりすることはありません。Node.jsのストリームと変換のおかげで、すべてがメモリ内で行われます。 🎉