[php]代码库
function sendEmail($to, $from, $subject, $message, $html_message=null) {
$eol = "\n";
$mime_boundary = md5(time());
$mime_boundary_header = chr(34) . $mime_boundary . chr(34);
if (empty($html_message)) {
$html_message = nl2br($message);
}
$headers = "From: $from" . $eol;
$headers .= "Message-ID: <" . time() . " domain>" . $eol;
$headers .= "X-Mailer: PHP v" . phpversion() . $eol; // These two to help avoid spam-filters
$headers .= 'MIME-Version: 1.0' . $eol;
// Setup for text OR html
$headers .= "Content-Type: multipart/alternative; boundary=" .
$mime_boundary_header . $eol . $eol;
$msg = "This is a multi-part message in MIME format to $to." .
$eol . $eol;
// Text Version
$msg .= "--" . $mime_boundary . $eol;
$msg .= "Content-Type: text/plain;" .$eol . $eol;
//$msg .= "Content-Transfer-Encoding: base64".$eol;
//$msg .= base64_encode($txt_body).$eol.$eol;
$msg .= $message . $eol . $eol;
// HTML Version
$msg .= "--".$mime_boundary . $eol;
$msg .= "Content-Type: text/html;{$eol}Content-Transfer-Encoding: 7bit" .
$eol . $eol;
//$msg .= "Content-Transfer-Encoding: base64".$eol;
//$msg .= base64_encode($html_body).$eol.$eol;
$msg .= $html_message . $eol . $eol;
// finish with two eol's for better security. see Injection.
$msg .= "--" . $mime_boundary . "--" . $eol . $eol;
if (isset($_SERVER) && isset($_SERVER['HTTP_HOST']) && !preg_match('/\.com$/', $_SERVER['HTTP_HOST'])) {
// DEV
preg_match('/[\w|\d|\ |\-]+/', $subject, $subject_label);
if (defined('DOCUMENT_ROOT')) {
$logfile = DOCUMENT_ROOT .'/scripts/logs/sendEmail/mail_'. microtime(true);
} else {
$logfile = '../../scripts/logs/sendEmail/mail_'. microtime(true);
}
if (isset($subject_label[0])) {
$logfile .= ' - '. $subject_label[0];
}
$fh = fopen($logfile . '.log', 'w+');
if (!$fh) {
$fh = fopen(preg_replace('/^\.\.\//', '', $logfile) . '.log', 'w+');
}
if ($fh) {
$filelog_content = date('Y-m-d H:i:s')."\n\n";
$filelog_content .= print_r($to, true)."\n";
$filelog_content .= print_r($subject, true)."\n\n";
$filelog_content .= print_r($msg, true);
fwrite($fh, $filelog_content);
fclose($fh);
}
} else {
mail($to, $subject, $msg, $headers, "-fdonotreply@domain.com");
}
}