如何将mysql数据库导出到excel并在没有phpMail的情况下将此文件发送到电子邮件

如何将mysql数据库导出到excel并在没有phpMail的情况下将此文件发送到电子邮件,php,mysql,Php,Mysql,请帮我做这个函数。。 将数据检索并管理到文件中,但不下载文件,而是将文件发送到电子邮件(附件)。但是不要戴phpmailer..嗯,我想,您将使用标准的php邮件功能。确保您的服务器支持这一点 (如果您使用的是Apache,请确保已安装、配置并启用sendmail) 仅供参考,使用mail()发送附件要比包含phpMail并按照流程进行工作多得多。不管怎样 function mail_you_do_you_m8($path, $filename, $from_name, $from_mail,

请帮我做这个函数。。
将数据检索并管理到文件中,但不下载文件,而是将文件发送到电子邮件(附件)。但是不要戴phpmailer..

嗯,我想,您将使用标准的php邮件功能。确保您的服务器支持这一点

(如果您使用的是Apache,请确保已安装、配置并启用sendmail)

仅供参考,使用mail()发送附件要比包含phpMail并按照流程进行工作多得多。不管怎样

function mail_you_do_you_m8($path, $filename, $from_name, $from_mail, $replyto)
$file = $path.$filename;
$content = file_get_contents( $file);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$name = basename($file);

// headers
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "Reply-To: ".$replyto."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";

// email a body with attachement
$nmessage = "--".$uid."\r\n";
$nmessage .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$nmessage .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$nmessage .= $message."\r\n\r\n";
$nmessage .= "--".$uid."\r\n";
$nmessage .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n";
$nmessage .= "Content-Transfer-Encoding: base64\r\n";
$nmessage .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$nmessage .= $content."\r\n\r\n";
$nmessage .= "--".$uid."--";

if (mail($mailto, $subject, $nmessage, $header)) {
    return true; 
} else {
  return false;
}
函数mail\u you\u do\u you\u m8($path,$filename,$from\u name,$from\u mail,$replyto)
$file=$path.$filename;
$content=file\u get\u contents($file);
$content=chunk_split(base64_encode($content));
$uid=md5(uniqid(time());
$name=basename($file);
//标题
$header=“From:”.$From\u name.\r\n”;
$header.=“回复:”.$replyto.\r\n”;
$header.=“MIME版本:1.0\r\n”;
$header.=“内容类型:多部分/混合;边界=\”.$uid.\“\r\n\r\n”;
//用电子邮件发送一封附有附件的邮件
$nmessage=“-->$uid”。\r\n”;
$nmessage.=“内容类型:文本/普通;字符集=iso-8859-1\r\n”;
$nmessage.=“内容传输编码:7bit\r\n\r\n”;
$nmessage.=$message.“\r\n\r\n”;
$nmessage.=“-”$uid.\r\n”;
$nmessage.=“内容类型:应用程序/八位字节流;名称=\”.$filename.\”\r\n”;
$nmessage.=“内容传输编码:base64\r\n”;
$nmessage.=“内容处置:附件;文件名=\”.$filename.\“\r\n\r\n”;
$n消息=$content.\r\n\r\n;
$nmessage.=“--”“$uid.”--”;
if(邮件($mailto,$subject,$nmessage,$header)){
返回true;
}否则{
返回false;
}
}

据我所知,您已经能够在csv文件中获取所有内容,但您无法发送该文件。。对的否则,我可以帮助您从mysql服务器提取数据

另外:获取具有正确列和格式的excel的简单方法是使用html表并在excel中打开它。。我曾经做过几次免费的excel导出,人们似乎很喜欢。。csv让不懂技术的人感到困惑:)

将mysql数据库导出到excel 这只是一行
$email->AddAttachment()--你不能要求更简单的

如果您使用PHP的
mail()
函数执行此操作,您将编写一堆代码,并且可能会有很多很难找到的bug

资源

“请帮助我完成此功能”-不确定您的期望值,但。。。这不是一个代码编写服务。你没有表现出任何工作。
<?php
/*******EDIT LINES 3-8*******/
$DB_Server = "localhost"; //MySQL Server    
$DB_Username = "username"; //MySQL Username     
$DB_Password = "password";             //MySQL Password     
$DB_DBName = "databasename";         //MySQL Database Name  
$DB_TBLName = "tablename"; //MySQL Table Name   
$filename = "excelfilename";         //File Name
/*******YOU DO NOT NEED TO EDIT ANYTHING BELOW THIS LINE*******/    
//create MySQL connection   
$sql = "Select * from $DB_TBLName";
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno());
//select database   
$Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno());   
//execute query 
$result = @mysql_query($sql,$Connect) or die("Couldn't execute query:<br>" . mysql_error(). "<br>" . mysql_errno());    
$file_ending = "xls";
//header info for browser
header("Content-Type: application/xls");    
header("Content-Disposition: attachment; filename=$filename.xls");  
header("Pragma: no-cache"); 
header("Expires: 0");
/*******Start of Formatting for Excel*******/   
//define separator (defines columns in excel & tabs in word)
$sep = "\t"; //tabbed character
//start of printing column names as names of MySQL fields
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo mysql_field_name($result,$i) . "\t";
}
print("\n");    
//end of printing column names  
//start while loop to get data
    while($row = mysql_fetch_row($result))
    {
        $schema_insert = "";
        for($j=0; $j<mysql_num_fields($result);$j++)
        {
            if(!isset($row[$j]))
                $schema_insert .= "NULL".$sep;
            elseif ($row[$j] != "")
                $schema_insert .= "$row[$j]".$sep;
            else
                $schema_insert .= "".$sep;
        }
        $schema_insert = str_replace($sep."$", "", $schema_insert);
        $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
        $schema_insert .= "\t";
        print(trim($schema_insert));
        print "\n";
    }   
?>
$email = new PHPMailer();
$email->From      = 'you@example.com';
$email->FromName  = 'Your Name';
$email->Subject   = 'Message Subject';
$email->Body      = $bodytext;
$email->AddAddress( 'destinationaddress@example.com' );

$file_to_attach = 'PATH_OF_YOUR_FILE_HERE';

$email->AddAttachment( $file_to_attach , 'NameOfFile.xls' );

return $email->Send();