发送电子邮件导出cvs文件php mysql

发送电子邮件导出cvs文件php mysql,php,mysql,email,csv,export,Php,Mysql,Email,Csv,Export,我正在尝试发送电子邮件导出csv文件。但是,当我单击链接时,会弹出一个窗口,从MySQL下载带有记录的CVS。如何将此csv文件发送到spesific电子邮件地址?非常感谢你的帮助和想法。 顺致敬意, 这是我的密码 header("Content-type: application/x-msdownload"); header("Content-Disposition: attachment; filename=log.csv"); header("Pragma: no-cach

我正在尝试发送电子邮件导出csv文件。但是,当我单击链接时,会弹出一个窗口,从MySQL下载带有记录的CVS。如何将此csv文件发送到spesific电子邮件地址?非常感谢你的帮助和想法。 顺致敬意, 这是我的密码

header("Content-type: application/x-msdownload");
    header("Content-Disposition: attachment; filename=log.csv");
    header("Pragma: no-cache");
    header("Expires: 0");
     $resultstr = array();
    foreach ($selectionlist as $result)
      $resultstr[] = $result;

    $ww=implode(",",$resultstr);

    function escape_csv_value($value) {
        $value = str_replace('"', '""', $value); // First off escape all " and make them ""
        if(preg_match('/,/', $value) or preg_match("/\n/", $value) or preg_match('/"/', $value)) { // Check if I have any commas or new lines
            return '"'.$value.'"'; // If I have new lines or commas escape them
        } else {
            return $value; // If no new lines or commas just return the value
        }
    }


    $sql = mysql_query("SELECT * FROM article 
    WHERE idArticle in ($ww) ORDER BY idArticle DESC"); // Start our query of the database

    $numberFields = mysql_num_fields($sql) or die('MySql Error' . mysql_error());; // Find out how many fields we are fetching

    if($numberFields) { // Check if we need to output anything
        for($i=0; $i<$numberFields; $i++) {
            $keys[] = mysql_field_name($sql, $i); // Create array of the names for the loop of data below
            $col_head[] = escape_csv_value(mysql_field_name($sql, $i)); // Create and escape the headers for each column, this is the field name in the database
        }
        $col_headers = join(',', $col_head)."\n"; // Make our first row in the CSV

        $data = '';
        while($info = mysql_fetch_object($sql)) {
            foreach($keys as $fieldName) { // Loop through the array of headers as we fetch the data
                $row[] = escape_csv_value($info->$fieldName);
            } // End loop
            $data .= join(',', $row)."\n"; // Create a new row of data and append it to the last row
            $row = ''; // Clear the contents of the $row variable to start a new row
        }
        // Start our output of the CSV
        /*header("Content-type: application/x-msdownload");
        header("Content-Disposition: attachment; filename=log.csv");
        header("Pragma: no-cache");
        header("Expires: 0");*/
        echo $col_headers.$data;

    } else {
        // Nothing needed to be output. Put an error message here or something.
        echo 'No data available for this CSV.';
    }

嗯。首先,您必须保存CSV文件。如果您如前所述设置了标题,文件将自动下载。请阅读这篇文章

一旦你创建了你的CSV文件,你就可以使用PHP邮件功能发送电子邮件。如果你需要一些图书馆,就看看这个。它很容易实现


$selectionlist从何而来?您的代码中可能存在SQL注入形式的安全问题。您应该阅读相应的。要通过电子邮件发送CSV,您需要使用相应的电子邮件功能,而不是回显数据。最简单的方法是使用PEAR包,它允许您轻松地将CSV数据添加为附件。或者,您必须自己创建电子邮件,使用以下内容: