convert_user_data();
/**
* convert string with adding slashes
* @param multiple types $str
* @return multiple types
*/
function quotes($str){
if(is_string($str)){
$str = addslashes($str);
}
elseif (is_array($str)){
foreach ($str as $key => $value){
$str[$key] = quotes($value);
}
}
return $str;
}
/**
* @return unknown_type
*/
function convert_user_data(){
if (!get_magic_quotes_gpc()) {
$_POST = quotes($_POST);
$_GET = quotes($_GET);
$_COOKIE = quotes($_COOKIE);
}
}
////////////////////////////////////////////
// Function: send_mail()
// UTF-8 Mail sending with html and attachments
////////////////////////////////////////////
/** Sends a mail.
*
* @code {
# To Email Address
$to_address = "to@address.com";
# From Email Address
$from_address = "from@address.com";
# From Name
$from_name = "Send Mail";
# Message Subject
$email_subject = "This is a test mail with some attachments";
# Use relative paths to the attachments
$attachments = Array(
Array("file"=>"../../test.doc", "content_type"=>"application/msword"),
Array("file"=>"../../123.pdf", "content_type"=>"application/pdf")
);
# Message Body
$email_body = "
This is a message with ".count($attachments)." attachments and maybe some HTML!";
send_mail($to_address, $from_address, $from_name, $email_subject, $email_body, $attachments);
}
*/
function email($to_address, $email_subject, $email_body, $from_address, $from_name, $attachments=false)
{
$eol="\r\n";
$mime_boundary = md5(time());
$headers = '';
$msg = '';
$html = (mb_strpos($email_body, "") !== false);
//$mail_site = "send_mail@" .$_SERVER['SERVER_NAME'];
# Common Headers
$headers .= 'Sender: ' . $from_address . $eol;
$headers .= 'From: ' . mb_encode_mimeheader($from_name) . " <" . $from_address . ">" . $eol;
$headers .= 'Reply-To: ' . mb_encode_mimeheader($from_name) . " <$from_address>" . $eol;
$headers .= 'Return-Path: ' . mb_encode_mimeheader($from_name) . " <$from_address>" . $eol; // these two to set reply address
$headers .= "Message-ID: <".time().$mime_boundary."@".$_SERVER['SERVER_NAME'].">".$eol;
$headers .= "X-Mailer: PHP v" . phpversion() . $eol; // These two to help avoid spam-filters
# Boundry for marking the split & Multitype Headers
$headers .= 'MIME-Version: 1.0' . $eol;
if ($attachments !== false) {
$headers .= "Content-Type: multipart/mixed; boundary=\"1$mime_boundary\"" . $eol;
$msg .= "--1".$mime_boundary.$eol;
if($html) {
$msg .= "Content-Type: multipart/alternative; boundary=\"2$mime_boundary\"" . $eol.$eol;
}
} else {
if($html) {
$headers .= "Content-Type: multipart/alternative; boundary=\"2$mime_boundary\"" . $eol;
}
}
# Setup for text OR html
# Text Version
if($html) {
$msg .= "--2".$mime_boundary.$eol;
$msg .= "Content-Type: text/plain; charset=UTF-8".$eol;
$msg .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
} else {
$headers .= "Content-Type: text/plain; charset=UTF-8".$eol;
$headers .= "Content-Transfer-Encoding: 8bit";
}
$msg .= strip_tags(str_replace("
", $eol, str_replace("
", $eol, $email_body))).$eol.$eol;
if($html) {
# HTML Version
$msg .= "--2".$mime_boundary.$eol;
$msg .= "Content-Type: text/html; charset=UTF-8".$eol;
$msg .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
$msg .= $email_body.$eol.$eol;
# Finished
$msg .= "--2".$mime_boundary."--".$eol.$eol; // finish with two eol's for better security. see Injection.
}
if ($attachments !== false) {
for($i=0; $i < count($attachments); $i++) {
if (is_file($attachments[$i]["file"])) {
# File for Attachment
$file_name = substr($attachments[$i]["file"], (strrpos($attachments[$i]["file"], "/")+1));
$handle=fopen($attachments[$i]["file"], 'rb');
$f_contents=fread($handle, filesize($attachments[$i]["file"]));
$f_contents=chunk_split(base64_encode($f_contents)); //Encode The Data For Transition using base64_encode();
fclose($handle);
# Attachment
$msg .= "--1".$mime_boundary.$eol;
$msg .= "Content-Type: ".$attachments[$i]["content_type"]."; name=\"".$file_name."\"".$eol;
$msg .= "Content-Transfer-Encoding: base64".$eol;
$msg .= "Content-Disposition: attachment; filename=\"".$file_name."\"".$eol.$eol; // !! This line needs TWO end of lines !! IMPORTANT !!
$msg .= $f_contents.$eol.$eol;
}
}
$msg .= "--1".$mime_boundary."--".$eol.$eol; // finish with two eol's for better security. see Injection.
}
# SEND THE EMAIL
ini_set('sendmail_from',$from_address); // the INI lines are to force the From Address to be used !
mail($to_address, mb_encode_mimeheader($email_subject), $msg, $headers);
ini_restore('sendmail_from');
return true;
}
?>
Изработка на сайт | Онлайн Магазин | Уеб дизайн | Поддръжка |
-
български
-
english