[英]How to send email with ReactJS and SendGrid?
我在 SendGrid 上有設置和帳戶。 我已經獲得了 API 密鑰和 Node.js 方法。 我正在使用 React js 創建一個 Web 應用程序。 我想通過 SendGrid 發送電子郵件。 我找不到任何解決方案。 請舉例說明我的問題。
//Form.js
class Form extends React.Component {
constructor() {
super();
this.handleSubmit = this.handleSubmit.bind(this);
}
handleSubmit(event) {
event.preventDefault();
const data = new FormData(event.target);
fetch('/api/form-submit-url', {
method: 'POST',
body: data,
});
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<label htmlFor="username">Enter username</label>
<input id="username" name="username" type="text" />
<label htmlFor="email">Enter your email</label>
<input id="email" name="email" type="email" />
<label htmlFor="birthdate">Enter your birth date</label>
<input id="birthdate" name="birthdate" type="text" />
<button>Send data!</button>
</form>
);
}
}
//index.js
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const msg = {
to: test@example.com',
from: 'test@example.com',
subject: 'Sending with SendGrid is Fun',
text: 'and easy to do anywhere, even with Node.js',
html: '<strong>and easy to do anywhere, even with Node.js</strong>',
};
sgMail.send(msg);
react 不可能,因為它是一個前端庫,如果你嘗試用 react 實現,你會得到這些錯誤
---> 拒絕設置不安全的標頭“User-Agent”
如果您需要設置這些標頭,那么您需要從您的服務器而不是訪問者的瀏覽器發出請求。
所以這是不可能的,你需要為它使用一些后端或火力。
您可以使用MailJS ,並將 sendgrid 用於事務服務。 它很容易使用。
有多種解決方案可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.