如何将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();