次のsendgridを統合する.JS :)
このチュートリアルでは、5つの簡単な手順で、次のAPIルートを使用してメールを送信するサービスを作成します.js
sendgridとは
sendgridとは
それは非常に人気のあるサービスは、そのAPIの通信を介して、お客様のアプリケーションにあるすべての顧客にメールを送信することができます.私はそれがUFO、Spotify、Airbnb、Yelpなどの大企業によって使用されることを強調したいと思います.あなたは、サービスに関する詳細な情報を得ることができますhere
次は何か。js
これは、静的なだけでなく、動的なウェブサイトを作成することができますオールインワンソリューションです.それらのJamstackに興味のある優れたオプションです.
次のアプリを作成
npx create-next-app next-sendgrid
スクリプトオブジェクトを追加
このステップでは、プロジェクトが必要とする構造に自分自身を捧げます.
依存関係をインストールした後、プロジェクトはこのように表示されます.
今すぐ追加scripts
すべてのコマンドを持ちます.npm
or yarn
最後にフォルダを作成しなければなりません/pages
, フォルダの中にindex.js
, registry.js
とフォルダ/api
. インサイド/ api
フォルダを作成しますsend-email.js
ステップ3
プログラミングでは、我々は通常多くを使用している機能を再利用するために良い練習です/utils
次のファイルが含まれます
sendemailjs
import fetch from 'node-fetch'
const SENDGRID_API = 'https://api.sendgrid.com/v3/mail/send'
const sendEmail = async ({ name, email }) => {
await fetch(SENDGRID_API, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${SENDGRID_API_KEY}`
},
body: JSON.stringify({
personalizations: [
{
to: [
{
email
}
],
subject: 'Demo success :)'
}
],
from: {
email: '[email protected]',
name: 'Test SendGrid'
},
content: [
{
type: 'text/html',
value: `Congratulations <b>${name}</b>, you just sent an email with sendGrid`
}
]
})
});
}
export { sendEmail };
あなたがメールを送る計画がなぜこのように設計されるかについてわかっていたいならば、あなたはより多くの情報を知っていることができますhere
/API/メールを送信します.TS
APIルートを使用してAPIを構築する簡単なソリューションを提供しますNext.js
. あなたは利点が別の同様のソリューションを表現する代わりに何であるか疑問に思うかもしれません.
APIルート
エクスプレス:サーバー
Serverlessに焦点を当てている利点は、エラーレートを減らす機能に基づいてAPIを構築することです.必要に応じて呼び出されます.伝統的なサーバーのアプローチでは、あなたのAPIは、誰もそれを消費している場合でも、あなたのホスティングプロバイダの支払いコストを増加させることができます.
import { NextApiRequest, NextApiResponse } from 'next';
import { sendEmail } from '../../utils/sendEmail';
export default async (req: NextApiRequest, res: NextApiResponse) => {
if(req.method === 'POST') {
const { name, email } = req.body;
await sendEmail({ name, email });
return res.status(200).end();
}
return res.status(404).json({
error: {
code: 'not_found',
messgae: "The requested endpoint was not found or doesn't support this method."
}
});
}
ステップ4
このステップでは、我々のAPIでSendGridを使用することができるキーを作成することに集中しますpage. ダッシュボードにアクセスしたら、次のオプションに移動します
オプションを選択すると次のように表示されます
APIキーの生成が完了したら、ファイルの小さな変更を行いますsendEmail.js
import fetch from 'node-fetch'
const SENDGRID_API = 'https://api.sendgrid.com/v3/mail/send'
const SENDGRID_API_KEY = 'YOU_KEY'
const sendEmail = async ({ name, email }) => {...}
export { sendEmail };
ステップ5
この最後のステップでは、メールを送信できるように、UIを実装します.デザインは非常に簡単です./pages/index.js
import React from 'react';
import Registry from './registry';
const Index = () => <Registry />;
export default Index;
/pages/registry.js
import React, { useState } from 'react';
const Registry = () => {
const [state, setState] = useState({ name: '', email: '' });
const handleChange = event => {
const { name, value } = event.target;
setState({
...state,
[name]: value
});
}
const handlePress = () => {
fetch('/api/send-email', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: state.name, email: state.email })
});
}
return (
<>
<div>
<label>
Name
<input
name="name"
type="text"
onChange={handleChange}
/>
</label>
</div>
<label>
Email
<input
name="email"
type="email"
onChange={handleChange}
/>
</label>
<div>
<button onClick={handlePress}>Send</button>
</div>
</>
);
}
export default Registry;
あなたがどのように多くの入力を扱うかについて疑問に思うならば、私は以下を推薦しますarticle このチュートリアルで使用するパターンを詳細に説明します.メイントピックに戻ると、すべての手順を完了したら、次の結果が表示されます.
プロジェクトリソース:https://github.com/MAPESO/nextjs-sendgrid
Reference
この問題について(次のsendgridを統合する.JS :)), 我々は、より多くの情報をここで見つけました
https://dev.to/markdrew53/integrating-sendgrid-with-next-js-4f5m
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
これは、静的なだけでなく、動的なウェブサイトを作成することができますオールインワンソリューションです.それらのJamstackに興味のある優れたオプションです.
次のアプリを作成
npx create-next-app next-sendgrid
スクリプトオブジェクトを追加
このステップでは、プロジェクトが必要とする構造に自分自身を捧げます.
依存関係をインストールした後、プロジェクトはこのように表示されます.
今すぐ追加
scripts
すべてのコマンドを持ちます.npm
or yarn
最後にフォルダを作成しなければなりません
/pages
, フォルダの中にindex.js
, registry.js
とフォルダ/api
. インサイド/ api
フォルダを作成しますsend-email.js
ステップ3
プログラミングでは、我々は通常多くを使用している機能を再利用するために良い練習です
/utils
次のファイルが含まれますsendemailjs
import fetch from 'node-fetch'
const SENDGRID_API = 'https://api.sendgrid.com/v3/mail/send'
const sendEmail = async ({ name, email }) => {
await fetch(SENDGRID_API, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${SENDGRID_API_KEY}`
},
body: JSON.stringify({
personalizations: [
{
to: [
{
email
}
],
subject: 'Demo success :)'
}
],
from: {
email: '[email protected]',
name: 'Test SendGrid'
},
content: [
{
type: 'text/html',
value: `Congratulations <b>${name}</b>, you just sent an email with sendGrid`
}
]
})
});
}
export { sendEmail };
あなたがメールを送る計画がなぜこのように設計されるかについてわかっていたいならば、あなたはより多くの情報を知っていることができますhere /API/メールを送信します.TS
APIルートを使用してAPIを構築する簡単なソリューションを提供します
Next.js
. あなたは利点が別の同様のソリューションを表現する代わりに何であるか疑問に思うかもしれません.APIルート
エクスプレス:サーバー
Serverlessに焦点を当てている利点は、エラーレートを減らす機能に基づいてAPIを構築することです.必要に応じて呼び出されます.伝統的なサーバーのアプローチでは、あなたのAPIは、誰もそれを消費している場合でも、あなたのホスティングプロバイダの支払いコストを増加させることができます.
import { NextApiRequest, NextApiResponse } from 'next';
import { sendEmail } from '../../utils/sendEmail';
export default async (req: NextApiRequest, res: NextApiResponse) => {
if(req.method === 'POST') {
const { name, email } = req.body;
await sendEmail({ name, email });
return res.status(200).end();
}
return res.status(404).json({
error: {
code: 'not_found',
messgae: "The requested endpoint was not found or doesn't support this method."
}
});
}
ステップ4
このステップでは、我々のAPIでSendGridを使用することができるキーを作成することに集中しますpage. ダッシュボードにアクセスしたら、次のオプションに移動します
オプションを選択すると次のように表示されます
APIキーの生成が完了したら、ファイルの小さな変更を行います
sendEmail.js
import fetch from 'node-fetch'
const SENDGRID_API = 'https://api.sendgrid.com/v3/mail/send'
const SENDGRID_API_KEY = 'YOU_KEY'
const sendEmail = async ({ name, email }) => {...}
export { sendEmail };
ステップ5
この最後のステップでは、メールを送信できるように、UIを実装します.デザインは非常に簡単です.
/pages/index.js
import React from 'react';
import Registry from './registry';
const Index = () => <Registry />;
export default Index;
/pages/registry.js
import React, { useState } from 'react';
const Registry = () => {
const [state, setState] = useState({ name: '', email: '' });
const handleChange = event => {
const { name, value } = event.target;
setState({
...state,
[name]: value
});
}
const handlePress = () => {
fetch('/api/send-email', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: state.name, email: state.email })
});
}
return (
<>
<div>
<label>
Name
<input
name="name"
type="text"
onChange={handleChange}
/>
</label>
</div>
<label>
Email
<input
name="email"
type="email"
onChange={handleChange}
/>
</label>
<div>
<button onClick={handlePress}>Send</button>
</div>
</>
);
}
export default Registry;
あなたがどのように多くの入力を扱うかについて疑問に思うならば、私は以下を推薦しますarticle このチュートリアルで使用するパターンを詳細に説明します.メイントピックに戻ると、すべての手順を完了したら、次の結果が表示されます.プロジェクトリソース:https://github.com/MAPESO/nextjs-sendgrid
Reference
この問題について(次のsendgridを統合する.JS :)), 我々は、より多くの情報をここで見つけました https://dev.to/markdrew53/integrating-sendgrid-with-next-js-4f5mテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol