我在SendGrid上具有设置和帐户。我有API密钥和Node.js方法。我正在使用React js创建一个Web应用程序。我想通过SendGrid发送电子邮件。我找不到任何解决方案。请举例说明我的问题。
答案 0 :(得分:1)
//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);
答案 1 :(得分:0)
因为它是一个前端库,所以用 react 是不可能的,如果你尝试用 react 来实现,你会得到这些错误
---> 拒绝设置不安全的头部“User-Agent”
如果您需要设置这些标头,那么您需要从您的服务器而不是访问者的浏览器发出请求。
因此,这在 React 中是不可能的,您需要为此使用一些后端或 Firebase。
答案 2 :(得分:0)
您可以使用 MailJS,并将 sendgrid 用于事务性服务。 使用起来很简单。
答案 3 :(得分:0)
有多种解决方案可用。