ホームページ > ウェブフロントエンド > jsチュートリアル > node.jsを使用して電子メールを送信します

node.jsを使用して電子メールを送信します

Christopher Nolan
リリース: 2025-02-08 12:24:09
オリジナル
191 人が閲覧しました

Sending Email Using Node.js

node.jsメール送信ガイド:nodemailerを使用して電子メールを送信および受信 この記事では、node.jsを使用して電子メールを送信および受信し、一般的な問題を解決する方法について説明します。 NodeMailerは、週に300万を超えるダウンロードを備えた人気のNPMモジュールですが、SMTPサーバーのサポートが必要です。

コアポイント:

nodemailerは、node.jsアプリケーションで最も一般的に使用されているNPMモジュールで、週に300万件以上のダウンロードが必要です。
  • 異なるレンダリングエンジンとさまざまな電子メールクライアントの制限により、さまざまなクライアントと互換性のあるHTMLメッセージを作成することは困難です。プレハブテンプレート、設計ツール、メールマークアップ言語などのツールやリソースは、プロセスを簡素化できます。
  • 信頼性を確保するには、node.jsアプリケーションで直接メールを送信する代わりに、メールデータをタスクキューに送信することをお勧めします。これにより、ユーザーはメッセージの処理中にアプリケーションを引き続き使用できます。
  • IMAPFLOWなどのモジュールを使用して、node.jsアプリケーションで受信した電子メールを読み取ります。
  • 電子メールを送信

ほとんどのWebアプリケーションでは、登録、パスワードリセット、ステータスレポート、ニュースレターやプロモーションなどの完全なマーケティングキャンペーンなどのメールを送信する必要があります。このチュートリアルでは、node.jsで電子メールを送信する方法について説明し、概念と課題も他のシステムにも当てはまります。

npmで多くの電子メール関連のモジュールを見つけることができます。最も人気のあるものはNodemailerです。

NodeMailerを使用するには、メールを送信するためにSMTPサーバーが必要です。独自のメールプロバイダーを使用できますが、このデモでは無料のWPoven Test SMTPサーバーを使用します。

プロジェクトの作成:
mkdir emailtest
cd emailtest
ログイン後にコピー
ログイン後にコピー
package.jsonを作成:
{
  "name": "emailtest",
  "type": "module",
  "main": "index.js",
  "dependencies": {
    "nodemailer": "^6.0.0"
  }
}
ログイン後にコピー
ログイン後にコピー
nodemailerのインストール:
npm install
ログイン後にコピー
index.jsの書き込み:
  1. (自分のメールアドレスに
アドレスを変更してください)
import nodemailer from 'nodemailer';

const transporter = nodemailer.createTransport({
  host: 'smtp.freesmtpservers.com',
  port: 25
});

try {
  const send = await transporter.sendMail({
    from: '"测试邮件" <test@email.com>',
    to: 'your_email@example.com',
    subject: '你好!',
    text: '你好,世界!',
    html: '<p>你好,世界!</p>',
  });

  console.dir(send, { depth: null, color: true });
} catch (e) {
  console.dir(e, { depth: null, color: true });
}
ログイン後にコピー

コードを実行した後、250 OK ResponseとMessageIDで結果が表示されます。 WPoven Test SMTPサーバーページにメールアドレスを入力して、「Inboxにアクセス」をクリックして、「Hello!」を表示します。 to:

nodemailerの基本

メールを送信するには、nodemailer transporter

オブジェクトを作成して、サービスタイプを定義する必要があります。 SMTPが最も一般的ですが、他のサービスが利用可能です。通常、認証ユーザーIDとパスワードが必要です:

トランスポーターの

メソッドを使用して、1人以上の受信者にメールを送信できます。
import nodemailer from 'nodemailer';

const transporter = nodemailer.createTransport({
  host: 'smtp.yourserver.com',
  port: 587,
  auth: {
    user: 'myid@yourserver.com',
    pass: 'my-password'
  },
});
ログイン後にコピー

すべてのメールクライアントは、プレーンテキストメッセージをサポートしています。メールクライアントがHTMLをサポートしている場合、同じメッセージのリッチフォーマットバージョンを送信することもできます(詳細については以下を参照)。 sendMail()

NodeMailerは他の多くのメッセージオプションを提供しますが、最も一般的なのは添付ファイルです。オブジェクトの配列は、ファイル名と内容を定義します。たとえば、
const send = await transporter.sendMail({
  from: '"测试邮件" <test@email.com>',
  to: 'someone@example.com, sometwo@example.com',
  cc: 'somethree@example.com',
  bcc: 'somefour@example.com',
  subject: '你好!',
  text: '纯文本邮件内容',
  html: '<p>HTML邮件内容</p>',
});
ログイン後にコピー
mkdir emailtest
cd emailtest
ログイン後にコピー
ログイン後にコピー

サービスと非同期アーキテクチャを送信

通常、1つのメールの送信が速くなりますが、SMTPサーバーはダウンして再試行する必要がある場合があります。または、メールが送信されたバッチメールの途中にメールが貼られている場合があります。

node.jsアプリケーションで直接メールを送信するよりも、タスクキューにデータを送信することをお勧めします。エンドユーザーは、応答を待たずにアプリケーションを引き続き使用できます。別のプロセスでは、メールキューを監視し、次のメールを送信し、失敗した場合にアイテムを要求できます。

htmlメールを作成

HTML5とCSS3は、最新のブラウザではうまく機能しますが、メールクライアントではうまく機能しません。次の問題に直面します

    さまざまなメールクライアントレンダリングエンジンがあります。
  • ほとんどのクライアントは、フォント、画像、トラッカー、メディアクエリ、iframe、ビデオ、オーディオ、フォーム、スクリプトをブロックまたは制限します。
  • メールクライアントはHTMLを再フォーマットすることができます。
HTMLメールを手動で書くことは困難です。次のツールとリソースをお勧めします:

  • メールテンプレート:CodedMails、キャンペーンモニターテンプレート、Litmus電子メールテンプレート、Stripoテンプレートなど。
  • メールテンプレート設計ツール:beefree、blocks編集、キャンペーンモニター、カメールオンなど。
  • メールテンプレート変換ツール:Phumailer、Alter.Email、Email-Combなど。
  • メールテンプレートタグツール:cerberus、電子メールフレームワーク、電子メールスケルトン、優れたメールコード、HEML、MJML、Maizzleなど。
  • メールテストツール:HTMLメールチェック、MailTrap、EmailPreview、MailSaur、Email Preview Services、Litmus、Email Acidなど。

受信した電子メールを読む< ほとんどのアプリケーションはメールを送信するだけですが、受け取ったメール(サービス登録、登録処理、自動化サポートなど)を確認する必要がある場合があります。このチュートリアルの範囲を超えて、IMAPFLOWなどのnode.jsモジュールを使用すると、アプリケーションがIMAP受信トレイに接続できます。電子メールとプロセス応答を取得できます。

結論

{
  "name": "emailtest",
  "type": "module",
  "main": "index.js",
  "dependencies": {
    "nodemailer": "^6.0.0"
  }
}
ログイン後にコピー
ログイン後にコピー

node.jsから電子メールの送信は簡単ですが、スパムの問題を引き起こすことなく、すべてのメールクライアントで適切に表示される電子メールを送信することははるかに困難です。簡単なプレーンテキストメールから始めることをお勧めします。

faq

(元のドキュメントの長いFAQ部分は、これらの問題が基本的に上にカバーされているため、ここでは省略されています。必要に応じて、特定の質問に従って追加できます。)

以上がnode.jsを使用して電子メールを送信しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート