react-native - React native Mailer (RNMail) - 附加文件问题

标签 react-native

我目前正在尝试通过我的 React native 应用程序从用户设备发送电子邮件。 这样做的过程很简单。用户填写一些输入字段,选择一张图片(新的或来自图库)并继续通过电子邮件发送。 根据模块的文档,需要图片的绝对文件路径。

我得到的文件路径如下:

file:///Users/User/Library/Developer/CoreSimulator/Devices/909705DC-D5…119-75CC009FFA5C/Documents/images/6EC7EAA7-0D37-4909-ABC4-B5DE250ED968.jpg

我收到以下错误消息:

Exception '-[MFMailComposeInternalViewController addAttachmentData:mimeType:fileName:] attachment must not be nil.' was thrown while invoking mail on target RNMail with params (
        {
        attachment =         {
            name = Name;
            path = "file:///Users/zser/Library/Developer/CoreSimulator/Devices/909705DC-D5…119-75CC009FFA5C/Documents/images/6EC7EAA7-0D37-4909-ABC4-B5DE250ED968.jpg";
            type = jpg;
        };
        body = "<h1>Content</h1>";
        isHTML = 1;
        recipients =         (
            "reiceiver@mail.com"
        );
        subject = subject;
    },
    25
)

这个路径有问题吗?

这是接受文件作为附件的基本代码:

Mailer.mail({
      subject: 'Subject',
      recipients: ['receiver@mail.com'],
      body: `<h1>Content</h1>`,
      isHTML: true, // iOS only, exclude if false
      attachment: {
        path: that.state.absolute_path,  // The absolute path of the file from which to read data.
        type: 'jpg',   // Mime Type: jpg, png, doc, ppt, html, pdf
        name: 'Ladunek',   // Optional: Custom filename for attachment
      }
    }, (error, event) => {
        if(error) {
          AlertIOS.alert('Error', 'Niestety mail nie zostal wyslany. Prosze przeslac manualnie mail na : receiver@mail.com');
        }
    })

谢谢你的帮助

最佳答案

显然从绝对路径中删除 'file:///' 解决了这个问题。

关于react-native - React native Mailer (RNMail) - 附加文件问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39118277/

相关文章:

javascript - React Native 无法在子元素上设置 100% 宽度

javascript - 在 NavigationIOS 中推送 View 时如何传递对象而不是类型?

javascript - 即使设置了宽度,TouchableOpacity 也会占用所有可用空间

android - 无法将 native 打包为 apk 应用程序 :validateSigningRelease app:transformNativeLibsWithStripDebugSymbolForRelease erros

react-native - 在嵌套导航器的某些屏幕中禁用父 TabNavigator 的滑动

react-native - TouchableWithoutFeedback 引发渲染错误

react-native - 如何使用 'expo-auth-session/providers/google' 将signInWithCredential推送到Firebase

javascript - 项目中缺少main.jsbundle、Foundation和Security,导致报错

typescript - React Navigation V5 + Typescript 错误 : Property 'fullName' does not exist on type 'object'

javascript - 使用TabNavigator时如何直接导航到初始路径?