node.jsメール送信ガイド:nodemailerを使用して電子メールを送信および受信 この記事では、node.jsを使用して電子メールを送信および受信し、一般的な問題を解決する方法について説明します。 NodeMailerは、週に300万を超えるダウンロードを備えた人気のNPMモジュールですが、SMTPサーバーのサポートが必要です。
コアポイント:nodemailerは、node.jsアプリケーションで最も一般的に使用されているNPMモジュールで、週に300万件以上のダウンロードが必要です。
ほとんどのWebアプリケーションでは、登録、パスワードリセット、ステータスレポート、ニュースレターやプロモーションなどの完全なマーケティングキャンペーンなどのメールを送信する必要があります。このチュートリアルでは、node.jsで電子メールを送信する方法について説明し、概念と課題も他のシステムにも当てはまります。
npmで多くの電子メール関連のモジュールを見つけることができます。最も人気のあるものはNodemailerです。NodeMailerを使用するには、メールを送信するためにSMTPサーバーが必要です。独自のメールプロバイダーを使用できますが、このデモでは無料のWPoven Test SMTPサーバーを使用します。
プロジェクトの作成:
mkdir emailtest cd emailtest
{ "name": "emailtest", "type": "module", "main": "index.js", "dependencies": { "nodemailer": "^6.0.0" } }
npm install
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()
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は、最新のブラウザではうまく機能しますが、メールクライアントではうまく機能しません。次の問題に直面します
受信した電子メールを読む< ほとんどのアプリケーションはメールを送信するだけですが、受け取ったメール(サービス登録、登録処理、自動化サポートなど)を確認する必要がある場合があります。このチュートリアルの範囲を超えて、IMAPFLOWなどのnode.jsモジュールを使用すると、アプリケーションがIMAP受信トレイに接続できます。電子メールとプロセス応答を取得できます。
結論
{ "name": "emailtest", "type": "module", "main": "index.js", "dependencies": { "nodemailer": "^6.0.0" } }
node.jsから電子メールの送信は簡単ですが、スパムの問題を引き起こすことなく、すべてのメールクライアントで適切に表示される電子メールを送信することははるかに困難です。簡単なプレーンテキストメールから始めることをお勧めします。
faq(元のドキュメントの長いFAQ部分は、これらの問題が基本的に上にカバーされているため、ここでは省略されています。必要に応じて、特定の質問に従って追加できます。))
以上がnode.jsを使用して電子メールを送信しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。