如何使用SendGrid附加.csv(由php生成)?

时间:2016-05-10 17:42:07

标签: php sendgrid

我留下一个简单的文字,以便快速阅读。

我正在试图弄清楚如何通过sendgrid发送csv文件,csv与数组一起使用,它是

fputcsv($output, array('Column 1', 'Column 2', 'Column 3'));

这不是来自服务器的真实文件,只是创建文件并将数据导出给用户。

问题是... addAttachment或setAttachment返回了一些错误,他们需要从路径或目录中找到文件的位置。

如何在不通过sendgrid从目录请求现有文件的情况下附加文件?

编辑:

        //Function to generate csv file
            private function array2csv($array) {
            if (count($array) == 0) {
                return null;
            }
            $lista = $array;
            ob_start();
            $fp = fopen('php://output', 'w');
            foreach ($array as $campos) {
                fputcsv($fp, $campos);
            }
            fclose($fp);
            return ob_get_clean();
        }

    //Call a function to send csv file
        public function sendCSVFile(){

            $data = $this->reqProducts();
            //prepareParams is csv templating and formatting function.
            $products = $this->prepareParams($data);
            $products = $this->array2csv($products);

            $body = "Hello, you have an attached file."


            $email = new SendGrid\Email();
            $email
              ->addTo('foo@bar.com')
              ->setFrom('me@bar.com')
              ->setSubject($body)
              ->setText($body)
              ->setHtml('<strong>Hello World!</strong>')
              ->addAttachment($products);

        }

错误输出是:

enter image description here

0 个答案:

没有答案