Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在React中将生成的csv文件作为电子邮件附件发送_Reactjs_Csv_Nodemailer - Fatal编程技术网

Reactjs 如何在React中将生成的csv文件作为电子邮件附件发送

Reactjs 如何在React中将生成的csv文件作为电子邮件附件发送,reactjs,csv,nodemailer,Reactjs,Csv,Nodemailer,在我的react应用程序中,我希望能够生成csv内容,并使用类似于node-mailer的东西将其作为附件发送到电子邮件中。我发现的所有与此相关的问题都建议使用fs,但我无法使用该客户端,因此我需要一种方法来生成csv内容,然后在发送电子邮件后将其作为附件传递。这样做的原因是因为我每次都会动态创建数据,而且数据永远不会相同,所以我不能在这里使用模板文件。我目前使用react csv生成我的csv文件,但看起来你只能下载文件,而不能将内容传递给其他方法,除非我在他们的文档中遗漏了什么 我看到的使用

在我的react应用程序中,我希望能够生成csv内容,并使用类似于
node-mailer
的东西将其作为附件发送到电子邮件中。我发现的所有与此相关的问题都建议使用
fs
,但我无法使用该客户端,因此我需要一种方法来生成csv内容,然后在发送电子邮件后将其作为附件传递。这样做的原因是因为我每次都会动态创建数据,而且数据永远不会相同,所以我不能在这里使用模板文件。我目前使用
react csv
生成我的csv文件,但看起来你只能下载文件,而不能将内容传递给其他方法,除非我在他们的文档中遗漏了什么


我看到的使用
节点邮件器的唯一问题是,它要求您拥有一个文件路径,并且看起来您不能将生成的数据用作附件。如果有人能给我指出正确的方向,那就太好了。老实说,我一直坚持这一点,在
react
中找不到解决这个问题的方法。谢谢

进一步了解ChrisR在评论中所说的内容,我能够认识到,使用
node-mailer
我将能够指定一个字符串作为要作为附件传递的内容。在这种情况下,我只需将数据格式化为
csv
字符串。通过这样做,我可以使用
.csv
扩展名设置文件名,并传入数据字符串。这使我能够使用
节点邮件器
发送带有
csv
附件的电子邮件。在
papaparse
包的帮助下,我也可以这样做。下面列出了代码,以防将来有人需要做类似的事情

myfile.js

...code above

// this would be called onClick on <button> element
TestEmail(){
        // this would be the data you want to send as attachment
        let temp = [
            {
                "Column 1": "1-1",
                "Column 2": "1-2",
                "Column 3": "1-3",
                "Column 4": "1-4"
            },
            {
                "Column 1": "2-1",
                "Column 2": "2-2",
                "Column 3": "2-3",
                "Column 4": "2-4"
            },
            {
                "Column 1": "3-1",
                "Column 2": "3-2",
                "Column 3": "3-3",
                "Column 4": "3-4"
            },
            {
                "Column 1": 4,
                "Column 2": 5,
                "Column 3": 6,
                "Column 4": 7
            }
        ]

        let to = MYEMAIL;
        let text =
            `<div width="100%",style="text-align:left;">` +
            `<h1 style="text-align:center;">Testing CSV</h1>` +
            `</div >`;

        let data = Papa.unparse(temp);

        $.get("/sendRaw", { to: to, subject: 'Testing CSV', text: text, data: data }, function (data) { });
    }


通过进一步了解ChrisR在评论中所说的内容,我能够认识到,使用
node-mailer
我可以指定一个字符串作为要作为附件传递的内容。在这种情况下,我只需将数据格式化为
csv
字符串。通过这样做,我可以使用
.csv
扩展名设置文件名,并传入数据字符串。这使我能够使用
节点邮件器
发送带有
csv
附件的电子邮件。在
papaparse
包的帮助下,我也可以这样做。下面列出了代码,以防将来有人需要做类似的事情

myfile.js

...code above

// this would be called onClick on <button> element
TestEmail(){
        // this would be the data you want to send as attachment
        let temp = [
            {
                "Column 1": "1-1",
                "Column 2": "1-2",
                "Column 3": "1-3",
                "Column 4": "1-4"
            },
            {
                "Column 1": "2-1",
                "Column 2": "2-2",
                "Column 3": "2-3",
                "Column 4": "2-4"
            },
            {
                "Column 1": "3-1",
                "Column 2": "3-2",
                "Column 3": "3-3",
                "Column 4": "3-4"
            },
            {
                "Column 1": 4,
                "Column 2": 5,
                "Column 3": 6,
                "Column 4": 7
            }
        ]

        let to = MYEMAIL;
        let text =
            `<div width="100%",style="text-align:left;">` +
            `<h1 style="text-align:center;">Testing CSV</h1>` +
            `</div >`;

        let data = Papa.unparse(temp);

        $.get("/sendRaw", { to: to, subject: 'Testing CSV', text: text, data: data }, function (data) { });
    }


您的问题是,您希望使用在节点服务器上运行的节点邮件程序,但用于客户端。客户端无法发送电子邮件。您需要创建一个API来发送从客户端应用程序接收的电子邮件。CSV只是逗号分隔的值。只发短信@ChrisR这是我的错,我现在确实使用nodemailer-by-API从服务器端发送电子邮件。因此,如果csv只是一个文本文件,我如何在客户端生成此文件,然后通过电子邮件发送它?您的问题是,您希望使用在节点服务器上运行的节点邮件程序,但用于客户端。客户端无法发送电子邮件。您需要创建一个API来发送从客户端应用程序接收的电子邮件。CSV只是逗号分隔的值。只发短信@ChrisR这是我的错,我现在确实使用nodemailer-by-API从服务器端发送电子邮件。因此,如果csv只是一个文本文件,我如何在客户端生成此文件,然后通过电子邮件发送?