2016-08-24 38 views
2

我目前正试图通过我的反应原生应用程序发送来自用户设备的电子邮件。 这样做的过程很简单。用户填写一些输入字段,选择一张图片(新的或来自图库)并继续通过电子邮件发送。 根据模块的文档,图片的绝对文件路径是必需的。反应本地梅勒(RNMail) - 问题与附加文件

这是我得到的外观如下文件路径:

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 =   (
      "[email protected]" 
     ); 
     subject = subject; 
    }, 
    25 
) 

什么不对的这条道路?

继承人的基本代码,应该接受该文件作为attachement:

Mailer.mail({ 
     subject: 'Subject', 
     recipients: ['[email protected]'], 
     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 : [email protected]'); 
     } 
    }) 

谢谢您的帮助

回答

0

显然是从绝对路径移除'file:///'固定的问题。