【问题标题】:Send email using react native (with attachments, android)使用本机反应发送电子邮件(带附件,android)
【发布时间】:2018-10-28 23:08:47
【问题描述】:

您需要从应用程序发送电子邮件以响应本机。

使用了react-native-mailcore,但它不能附加文件。这是我的主要任务

我还能如何通过 smtp 发送带有文件的电子邮件?

【问题讨论】:

标签: javascript java android react-native smtp


【解决方案1】:

首先你需要安装 react-native-mail 来发送邮件。

从 'react-native-mail' 导入 Mailer;

handleEmail = (url) => { Mailer.mail({ subject: 'Screenshot', recipients: ['example@gmail.com'], ccRecipients: ['example1@gmail.com'], //bccRecipients: ['supportBCC@example.com'], body: '<b>Hello</b><p>Please check attached screenshot.</p>', isHTML: true, attachment: { path: url, // The absolute path of the file from which to read data. type: 'png', // Mime Type: jpg, png, doc, ppt, html, pdf, csv //name: 'error.png', // Optional: Custom filename for attachment } }, (error, event) => { console.log('errror', error) }); };

【讨论】:

    【解决方案2】:

    我也面临同样的问题,所以我最终创建了自己的库:react-native-smtp-mailer

    您使用您的凭据连接到 smtp 服务器以向收件人发送电子邮件,并能够添加 html 正文、附件等 (ios+android)。实际上它是 ios mailcore2 和 android javamail 主要功能的桥梁。

    希望这对其他人也有帮助。

    【讨论】:

      【解决方案3】:

      react-native-mail 怎么样?

      它是“iOS 上的 MFMailComposeViewController 和 Android 上的 Mail Intent 之上的包装器”

        var Mailer = require('NativeModules').RNMail;
      
        var MailExampleApp = React.createClass({
          handleHelp: function() {
            Mailer.mail({
              subject: 'need help',
              recipients: ['support@example.com'],
              body: '',
              attachment: {
                path: '',  // The absolute path of the file from which to read data.
                type: '',   // Mime Type: jpg, png, doc, ppt, html, pdf
                name: '',   // Optional: Custom filename for attachment
              }
            }, (error, event) => {
                if(error) {
                  AlertIOS.alert('Error', 'Could not send mail. Please send a mail to support@example.com');
                }
            });
          },  
          render: function() {
            return (
              <TouchableHighlight
                    onPress={row.handleHelp}
                    underlayColor="#f7f7f7">
                <View style={styles.container}>
                  <Image source={require('image!announcement')} style={styles.image} />
                </View>
             </TouchableHighlight>
            );
          }
        });
      

      【讨论】:

      • 谢谢,我已经看到了这个实现。 smtp 必须在应用程序内
      • 要使 MFMailComposeViewController 工作,您需要安装和配置官方 Mail.app。未安装 Mail.app 的用户将无法使用 react-native-mail 发送电子邮件。 stackoverflow.com/questions/37800021/…
      猜你喜欢
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 2012-03-24
      • 2012-06-15
      • 2015-08-28
      • 1970-01-01
      • 2016-10-23
      相关资源
      最近更新 更多