前面部分是用 phpmailer发送邮件,支持esmtp的
后面部分是配置 php.ini, 用php自带的mail function发邮件, 并且都支持附件的。
// 在用phpmailer发送的时候, 参数都不能为NULL, 但可能传空的 array过来.
在用后面那部分代码的时候,要求不能是esmtp,因为 php.ini没有密码配置,而且最好下载一个 CMailServer
在本机进行测试, 我就是用CMailServer在本机建军立smtp环境来测的,成功.
function post_mail($mailToArr, $mailCcArr, $subject, $htmlBody, $attachmentArr) {
/* for phpMailer
$host = 'smtp.163.com';
$username = 'aaa';
$userpass = '';
$mailFrom = 'aaa@163.com';
$ehlo = true;
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = $host;
$mail->SMTPAuth = $ehlo;
$mail->Username = $username;
$mail->Password = $userpass;
$mail->From = $mailFrom;
//$mail->SMTPDebug = true;
//$mail->SMTPSecure = 'ssl';
//$mail->Port = 587;
foreach( $mailToArr as $mailTo )
if(strlen($mailTo)>0){
$mail->AddAddress( $mailTo );
}
foreach( $mailCcArr as $mailCc )
if(strlen($mailCc)>0){
$mail->AddCC( $mailCc );
}
foreach( $attachmentArr as $att )
if(strlen($att)>0){
$mail->AddAttachment( $att );
}
$mail->AltBody ="text/html";
$mail->IsHTML(true);
$mail->Subject = $subject;
$mail->Body = $htmlBody;
$re = $mail->Send();
$mailError = $mail->ErrorInfo;
$_SESSION['mailError'] = $mailError;
return $re;
*/
// for php.ini smtp config, not esmtp
$mailTos = '';
foreach( $mailToArr as $mailTo ) {
if( trim($mailTo) != '' ) {
$mailTos .= $mailTo . ',';
}
}
$mailCcs = '';
foreach( $mailCcArr as $mailCc ) {
if( trim($mailCc) != '' ) {
$mailCcs .= $mailCc . ',';
}
}
$email_subject = stripslashes($subject);
$htmlBody = str_replace("\n", "
", stripslashes($htmlBody));
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers .= "From: Administrator




















