|
TwojePC.pl © 2001 - 2025
|
 |
A R C H I W A L N A W I A D O M O Ś Ć |
 |
| |
|
PHP - wysyłanie emaili .... , kubazzz 21/08/08 21:01 Chcę zrobić prosty skrypt, który będzie wysyłał maila z formularza z dołączonymi plikami - minimum zero plikow, maksimum trzy.
Znalazlem taki skrypt w sieci, ale jest on mocno rozbity na drobne elementy. W sumie dobrze bo bardziej czytelny.
Ale mam parę wątpliwości/pytań co do treści tych nagłówków emailowych. Mogę to przepisać na żywca, ale wolałbym wiedzieć co się dzieje.
No i jak najlepiej umożliwić zmienną ilość załączników? Bo mi przychodzi do głowy tylko dodanie kolejnych zmiennych $attachment, albo zrobienie tablicy.
Ale w sumie przez to, że nie do końca rozumiem składnie tego emaila to nie bardzo jestem pewien jak dodawać więcej niż jeden plik.
Pliki to będą zasadniczo obrazki i nie wiem czy muszę jakoś modyfikować typ danych [w formularzu jest wybór wg typu, zrobię jeszczę weryfikację po zgłoszonym MIME w php].
Treść skryptu:
function mail_attachment ($from , $to, $subject, $message, $attachment){
$fileatt = $attachment; // Path to the file
$fileatt_type = "application/octet-stream"; // File Type
$start= strrpos($attachment, '/') == -1 ? strrpos($attachment, '//') : strrpos($attachment, '/')+1;
$fileatt_name = substr($attachment, $start, strlen($attachment)); // Filename that will be used for the file as the attachment
$email_from = $from; // Who the email is from
$subject = "New Attachment Message";
$email_subject = $subject; // The Subject of the email
$email_txt = $message; // Message that the email has in it
$email_to = $to; // Who the email is to
$headers = "From: ".$email_from;
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
fclose($file);
$msg_txt="\n\n You have recieved a new attachment message from $from";
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"{$mime_boundary}\"";
$email_txt .= $msg_txt;
$email_message .= "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type:text/html; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$email_txt . "\n\n";
$data = chunk_split(base64_encode($data));
$email_message .= "--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
//"Content-Disposition: attachment;\n" .
//" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
$ok = mail($email_to, $email_subject, $email_message, $headers);
if($ok)
{
echo "File Sent Successfully.";
unlink($attachment); // delete a file after attachment sent.
}
else
{
die("Sorry but the email could not be sent. Please go back and try again!");
}
}SM-S908 - Daruj sobie funkcje "mail" , esteban 21/08/08 21:10
ani to uzyteczne, ani funkcjonalne, ani bezpieczne. Zend_Mail z zend framework, albo starenki phpmailer maja sensowne interfejsy i nawet nie trzeba sie recznie palowac zeby pl literki uzyskac. A zalaczniki to zaden problem.- ech , kubazzz 21/08/08 21:13
no dobra, czyli znowu ja się uczę, a w grę wchodzą rozbudowane frameworki, których nie ogarnę:DSM-S908 - niee, spoko , Tomasz 21/08/08 21:17
phpmailer. jedna klasa do includa, prosta obsluga, dziala wysmienicie :)
http://phpmailer.sourceforge.nethttps://www.siepomaga.pl/milosz-mosko - faktycznie nie wyglada to przerazajaco , kubazzz 21/08/08 21:30
bo przy jQuery od JS to sie ciezko polapac mi bylo.
A może to php jest bardziej przejrzyste niż javascript..SM-S908
- Zend , esteban 21/08/08 21:20
Zend framework to taki framework, z ktorego mozna sobie wziac to co sie chce, czyli np. tylko czesc od wysylania maili, a reszte zignrowac. Nie ma problemu ze nagle trzeba sie uczyc *wszystkiego*. A jest to troche nowszy projekt niz phpmailer, bardziej aktywny etc.- ok, dzięki. przejrzałem oba , kubazzz 21/08/08 21:36
i wybrałem phpmailer - po pierwsze dlatego, że nie trzeba nic robić z nim, po drugie dlatego, że mój provider wciąż używa domyślnie php4, po trzecie dlatego, że nie potrzebuję wielkich cudów.
Dziękuję za pomoc:)SM-S908
- hmm , akustyk 21/08/08 21:36
ja robilem tak:
require_once("../include/Mail/htmlMimeMail.php");
$mail = new htmlMimeMail();
$prefix = "<html>\r\n<style>\r\n" . implode( "", file("../print.css")) . "</style><body>\n\n";
$content = "TU TRESC MAILA";
$suffix = "</body>\r\n</html>\r\n\r\n";
$html = $prefix . $content . $suffix;
$im_background = $mail->getFile('../img/bkgr.jpg');
$im_header = $mail->getFile('../img/header.jpg');
$im_page1 = $mail->getFile('../img/page1.jpg');
$im_page2 = $mail->getFile('../img/page2.jpg');
$im_ic1 = $mail->getFile('../img/icon-www.jpg');
$im_ic2 = $mail->getFile('../img/icon-atest.jpg');
$im_ic3 = $mail->getFile('../img/icon-itech.jpg');
$im_ic4 = $mail->getFile('../img/icon-news.jpg');
$im_ic5 = $mail->getFile('../img/icon-lit.jpg');
$im_cmy = $mail->getFile('../img/cmy.gif');
$mail->setHtml($html);
$mail->addHtmlImage($im_background, 'bkgr.jpg', 'image/jpg');
$mail->addHtmlImage($im_header, 'header.jpg', 'image/jpg');
$mail->addHtmlImage($im_page1, 'page1.jpg', 'image/jpg');
$mail->addHtmlImage($im_page2, 'page2.jpg', 'image/jpg');
$mail->addHtmlImage($im_ic1, 'icon-www.jpg', 'image/jpg');
$mail->addHtmlImage($im_ic2, 'icon-atest.jpg', 'image/jpg');
$mail->addHtmlImage($im_ic3, 'icon-itech.jpg', 'image/jpg');
$mail->addHtmlImage($im_ic4, 'icon-news.jpg', 'image/jpg');
$mail->addHtmlImage($im_ic5, 'icon-lit.jpg', 'image/jpg');
$mail->addHtmlImage($im_cmy, 'cmy.gif', 'image/jpg');
$mail->setFrom('"Firma" <');
$mail->setSubject('Tytul maila');
$sendto = Array($f_email);
array_push($sendto, "
$mail->send($sendto);
to byl PHP4 i dzialalo jak zlotohttp://akustyk.magma-net.pl - hmm , akustyk 21/08/08 21:37
adresy email bez srednikow (dostawil kod boarda)http://akustyk.magma-net.pl
- pytanie za 1000 punktów - czemu te dwie linijki petli nie działaja?? , kubazzz 22/08/08 20:27
for ($i = 1; $i <= 3; $i += 1)
{
echo $_FILES['plik']['name'][$i];
echo "<br>";
}SM-S908 - nieaktualne , kubazzz 22/08/08 21:37
mam teraz inny problem.SM-S908
|
|
|
|
 |
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL |
 |
|
|
|