あなたのウェブサイトからあなたのユーザーにメールを送ってください.それは簡単に得ることができない!
4359 ワード
まず第一に、私はあなたに私が話していることの上で頭を与えさせます、そして、このブログの目的.今日の世界では、ほぼすべてのウェブサイトやWebアプリは、それぞれのユーザーには、それぞれの機能や目的を持つすべての種類のメールを送信します.
これらのメールの中には、
報告書(チケット)
接触Meフォーム
電子メール配送サービスによるNodemailerの使用
Nodemailerは、それら自身の定義によって、ノードのためのモジュールです.JSのアプリケーションを簡単にケーキのメール送信を許可する.ほとんどのユーザーがデフォルトで有効にするソリューションです.
このクイックプロジェクトから始めるには、ノードを持たなければなりません.JSのアプリケーションを事前に設定して実行している.あなたがノードと非常によく知らないならば.JSと簡単なバックエンド環境を設定する少し助けを必要とする、私を助けるために私の今後のブログをチェックアウト.
次に、ルートディレクトリにnodemailerをインストールします.
npm i nodemailer
今すぐあなたのクライアント/訪問者にこれらの簡単なメールを送信する簡単な方法を提供する電子メール配信サービスを使用する必要があります.これらのサービスの多くは、それぞれが独自の機能と長所を他のそれを持っている.最も一般的なものはsendgrid、sendinblue、hubspot、omnisendなどです.私が使用する1つは、サービスの容易さのため、sendibblueになると、任意の予期しない問題の場合、彼らのかなり良い顧客サポート.アカウントの作成手順
npm i nodemailer
上記の手順をノードに実装します。jsアプリ
今、魔法が起こるのを見るために、我々のノードを変更する必要があります.jsアプリ.まず、ルートディレクトリの中にファイルを作り、好きなものを何でもいいです.js次に、以下のようにNodeMailerをインポートします(必要に応じてimportメソッドを使用し、package . jsonファイルに移動し、オプションを追加します.
import nodemailer from 'nodemailer'
次に、以下の関数を作成してエクスポートします.import nodemailer from "nodemailer"
//Note that I stored my credentials in my .env file
const { SMTP_KEY, SMTP_PASS, SENDER_EMAIL, REPORT_PASS } = process.env
export const sendReportMail = (to, mailContent) => {
const smtpTransport = nodemailer.createTransport({
host: "smtp-relay.sendinblue.com",
service: "Sendinblue",
port: 587,
auth: {
user: SMTP_KEY,
pass: SMTP_PASS,
},
})
const mailOptions = {
from: SENDER_EMAIL,
to: [to, SENDER_EMAIL],
subject: "Email subject",
html: `
<div >
Dear ${mailContent?.name},
Thanks for contacting us! We'll make sure to get back in touch as soon as possible!
</div>
`,
}
smtpTransport.sendMail(mailOptions, (err, info) => {
if (err) return err
return info
})
}
最後になりますが、少なくとも以下の例として、任意のルータコントローラ内でこの関数を使用して簡単にユーザーのメールを送信できます.export const sendReport = async (req, res) => {
// Getting report data, which the user himself added, while we received this data with a POST request
const { firstName, lastName, subject, message } = req.body
try {
const mailContent = {
name: `${firstName} ${lastName}`,
subject,
message,
}
sendReportMail(user?.email, mailContent)
res.status(200).json({
message:
"Report submitted successfully! Please check your email for confirmation.",
})
}
} catch (err) {
if (err?.errors?.email?.name === "ValidatorError") {
res.status(403).json({
message: "Please enter a valid email",
})
} else {
res.status(500).json({
message: "Server Error",
})
}
}
}
Reference
この問題について(あなたのウェブサイトからあなたのユーザーにメールを送ってください.それは簡単に得ることができない!), 我々は、より多くの情報をここで見つけました https://dev.to/iamshour/send-emails-from-your-website-to-your-users-it-cant-get-any-easier-p62テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol