我想按一个按钮,然后给自己发一封带有Gmail帐户的电子邮件,在React Native的一个世博会应用程序中使用SMTP协议。我不想使用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')]如果您知道任何其他解决方案,或者如果您知道如何使此模块工作,请让我知道。谢谢你的回答。
发布于 2020-09-18 01:49:53
您尝试使用的库https://github.com/angelos3lex/react-native-smtp-mailer需要一个纯react-native项目,要使用此库,您需要从expo项目中弹出来执行此操作,请在项目的根目录中运行以下命令:
expo-cli eject然后使用npm或yarn安装react-native-smtp-mailer
然后运行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,通过该服务器api发送消息更安全,或者使用web服务,如AWS电子邮件服务。
发布于 2020-09-18 03:03:00
如果你来自未来,和我有同样的问题,你可以试试:
kareem adel
我不想退出,所以我寻找了另一种选择。我发现了Firebase Cloud Functions,它们就像一个后端,通过Google Firebase项目全天候免费运行。这样做的好处是,您可以使用NodeJS和nodemailer库来发送电子邮件(并做您能想到的任何事情)。
这是一个我发现在Medium中非常非常有用的tutorial。
https://stackoverflow.com/questions/63942194
复制相似问题