|
PHP send mail fonksiyonu - PHP Webmaster bilgi bankası, knowledge base Webmaster Araçları
AnaSayfa > PHP > PHP send mail fonksiyonu |
| Kategori | : PHP | Gönderen | : Admin | Tarih | : 2009-05-29 | Puan | : 3 | Katılımcı : 4 | Okunma | : 5754 | | | |
| | <?php
function sendmail($to, $subject, $body, $file=NULL, $from='noreply@yourdomain.com', $additional='')
{
$boundary = 'SPROUT-19_16_18_15_21_20';
$headers = array();
$headers[] = 'From: ' . $from;
$headers[] = 'Reply-To: ' . $from;
if(trim($additional) !== '')
{
$headers[] = $additional;
}
$headers[] = 'MIME-Version: 1.0';
$headers[] = 'Content-Type: multipart/mixed; boundary="' . $boundary . '"';
$headers[] = 'Content-Transfer-Encoding: 7bit' . "\r\n";
$headers[] = "> This is a multi-part message in MIME format.\r\n";
$headers[] = '--' . $boundary;
// if there is html in the message, send it with the right settings and an alternative for crappy browsers
if(preg_match('/\<(html|body)/ims', $body))
{
$htmlbound = 'SPROUT-' . rand(100,9999);
$headers[] = 'Content-Type: multipart/alternative; boundary="' . $htmlbound . '"' . "\r\n";
$headers[] = '--' . $htmlbound;
$headers[] = 'Content-Type: text/plain; charset="iso-8859-1"';
$headers[] = 'Content-Transfer-Encoding: 7bit' . "\r\n";
$headers[] = strip_tags(preg_replace('/\<head\>(.+?)\<\/head\>/ims', '', $body)) . "\r\n\r\n";
$headers[] = '--' . $htmlbound;
$headers[] = 'Content-Type: text/html; charset="iso-8859-1"';
$headers[] = 'Content-Transfer-Encoding: base64' . "\r\n";
$headers[] = chunk_split(base64_encode($body));
$headers[] = "\r\n\r\n--" . $htmlbound . "--\r\n\r\n--" . $boundary;
}
else
{
$headers[] = 'Content-Type: text/plain; charset="iso-8859-1"';
$headers[] = 'Content-Transfer-Encoding: 7bit' . "\r\n";
$headers[] = $body . "\r\n\r\n";
$headers[] = '--' . $boundary;
}
// attach files if they are there
if($file !== NULL)
{
$files = (!is_array($file)) ? array($file) : $file;
foreach($files as $attachment)
{
if(!file_exists($attachment))
continue;
$path = pathinfo($attachment);
$headers[] = 'Content-Type: application/octet-stream; name="' . $path['basename'] . '"';
$headers[] = 'Content-Disposition: attachment; filename="' . $path['basename'] . '"';
$headers[] = "Content-Transfer-Encoding: base64\r\n";
$attach = chunk_split(base64_encode(file_get_contents($attachment)));
$headers[] = $attach;
$headers[] = '--' . $boundary;
}
}
return mail($to, $subject, '', implode("\r\n", $headers) . '--');
}
?>
ÖRNEK
<?php
// Send an html file
sendmail('someone@domain.ext', 'Title', 'HTML CONTENT HERE');
// Send an email with an attachment
sendmail('someone@domain.ext', 'Title', 'Check out this picture', 'image.jpg');
// Send an html style email with multiple attachments
sendmail('someone@domain.ext', 'Title', 'HTML GOES HERE', array('product.jpg', 'productdetails.pdf'));
// Send a plaintext email from joeschmoe@domain.ext
sendmail('someone@domain.ext', 'Title', 'PLAIN TEXT GOES HERE', NULL, 'joeschmoe@domain.ext');
?>
|
|