使用 React Native iOS 发送电子邮件

IT技术 ios email reactjs react-native
2021-05-14 22:49:21

我需要能够使用 React Native 发送电子邮件。

用户将文本数据输入表单并按下提交按钮,然后应将文本复制到新电子邮件中并发送到我可以查看数据的地址。它将始终发送到同一地址。

所以基本上我需要的是从应用程序内发送电子邮件,而每个用户的发件人和收件人地址保持不变。(用户或任何东西都不能选择)

我已经查找了各种似乎能够做到这一点的module,但到目前为止,没有一个module与 react native 一起工作(即https://nodemailer.com

我不需要的是弹出 iOS 的标准电子邮件提示(如本modulehttps://www.npmjs.com/package/react-native-communications)。它应该始终在后台完成,用户甚至不知道已发送电子邮件,只需确认数据已提交。

2个回答

不幸的是,iOS 默认不支持在后台发送邮件。

您可以做的是使用您需要的数据向您的后端发出 XHR 请求,并在服务器上处理邮寄程序。

您可能会在这里找到更多方便的信息:

UPD:您也可以尝试直接使用iphone smtp 客户端库这意味着您需要创建一个 react-native module,它将 SMTP 功能桥接到 JS 部分。但在这里,您需要在代码中存储一些私人凭据,这会使它们容易受到逆向工程的攻击。

我刚刚创建了一个 npm 包,允许将用户发送到另一个电子邮件应用程序。

https://github.com/ErickMaeda/react-native-email-action

它易于安装,并且您不需要任何本机代码来链接。

安装:

npm install --save react-native-email-action

用法

import { sendEmail } from 'react-native-email-action';

const options = {
  to: "erick.maeda26@gmail.com", 
  subject: "Very important!", 
  body: "Verify your email fast!"
};
sendMail(options);

重要的

iOS 9+以后,需要在Info.plist上添加这个信息键

<key>LSApplicationQueriesSchemes</key>
<array>
  <string>message</string>
  <string>ms-outlook</string>
  <string>googlegmail</string>
</array>