使用 React Native 发送电子邮件 iOS

Send Email using React Native iOS

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

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

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

我已经查找了各种似乎能够做到这一点的模块,但 none 到目前为止已经与 React Native 一起工作(即 https://nodemailer.com

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

很遗憾,iOS默认不支持在后台发送邮件。

您可以做的 - 向您的后端发出 XHR 请求,其中包含您需要的数据,并在服务器上处理邮件程序。

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

  • Send Email in Background from iOS

  • How to send an email to a receipent in background in iOS5?

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

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

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

安装简单,您不需要任何本机代码即可 link。

安装:

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);

重要

iOS9+后,需要在Info.plist

上添加此信息键
<key>LSApplicationQueriesSchemes</key>
<array>
  <string>message</string>
  <string>ms-outlook</string>
  <string>googlegmail</string>
</array>