react-native - 使用 SMTP 协议从 React Native 发送电子邮件
问题描述
我想按下一个按钮,然后在 React Native 的 Expo 应用程序中使用 SMTP 协议向自己发送一封带有 Gmail 帐户的电子邮件。我不想使用Linking
,因为它会打开一个 Gmail 屏幕,我想发送带有代码的电子邮件,而不是让用户发送它。
我找到了一个名为的模块,react-native-smtp-mailer
但它抛出了一个我无法解决的错误。
这是我所做的功能:
import RNSmtpMailer from "react-native-smtp-mailer";
export async function sendEmail() {
const res = await RNSmtpMailer.sendMail({
mailhost: "smtp.gmail.com",
port: "465",
ssl: true,
username: "get.food.cordoba@gmail.com",
password: "password123",
from: "get.food.cordoba@gmail.com",
recipients: "octaviopercivaldi2@gmail.com",
subject: "subject 123",
htmlBody: "<p>body 123</p>",
attachmentPaths: [],
attachmentNames: [],
attachmentTypes: [],
})
console.log(res)
}
这是我从运行sendEmail
函数中得到的:
[Unhandled promise rejection: TypeError: null is not an object (evaluating '_reactNativeSmtpMailer.default.sendMail')]
如果您知道任何其他解决方案,或者如果您知道如何使该模块工作,请告诉我。感谢您的回答。
解决方案
您尝试使用的库https://github.com/angelos3lex/react-native-smtp-mailer
需要一个裸 react-native 项目,要使用此库,您需要从 expo 项目中弹出来执行此操作,在项目的根目录中运行此命令:
expo-cli eject
然后react-native-smtp-mailer
使用npm
或安装yarn
然后运行react-native link react-native-smtp-mailer
然后按照这些额外的步骤: https ://github.com/angelos3lex/react-native-smtp-mailer#extra-steps
运行yarn ios
或yarn android
启动 JavaScript 捆绑器服务器并构建项目二进制文件。这需要 Xcode 或 Android Studio,具体取决于平台。
但是,这不是发送电子邮件的最佳方式,最终您需要实现一个服务器 api,通过它发送消息,这样更安全,或者使用 AWS 电子邮件服务等 Web 服务。
推荐阅读
- pandas - 通过几个条件组合熊猫数据框中的行
- nginx - Blazor 应用程序 /_blazor/disconnect 状态码 400
- c++ - 如何修复运行时错误 [SIGABRT] 断言失败
- python - 我可以找到一个训练有素的深度学习模型来比较两个人的图像并返回他们是否相同
- python - 如何将 max() 和 min() 用于用户输入的两位或三位数字
- java - 如何将其变成帕斯卡三角形而不是直角三角形?
- php - 在 PHP 的每个循环中选择查询不起作用
- r - R语言内维计算的进展
- r - 如何在 R 中使 xspline 曲线对称?
- spring - Spring JPA + H2 DB:保存字段值不区分大小写