Email with an attachment - final solution

HackForum

Email with an attachment - final solution#
Dobry den, mam problem s realizaci PHP skriptu pro odeslani emailu s prilohou (.jpg/.txt/.pdf/.zip etc).
Na googlu jsem hleda uspokojive reseni mnoho dni. Prosel jsem jak ceska tak predevsim zahranicni fora, diskuzni weby, tutorialy, ale zadne z reseni mi na mem webu nefunguje. Mam normalni hosting pod cesky-hosting.cz.

Kdyby se zde chtel nekdo podelit o svuj FUNKCNI skript, kterym tohle na webu resi, byl bych moc rad a urcite by to vice lidi ocenilo...

Predem diky za pripadne rady.
(odpovědět)
ixteo | 185.61.138.*15.3.2015 18:29
re: Email with an attachment - final solution#
Myslim si, ze toto ti bohate pomoze.
[link]

Staci precitat dokumentaciu ;)
(odpovědět)
[n] | 188.167.178.*16.3.2015 0:18
re: Email with an attachment - final solution#
Diky za link, ale i tak bych byl rad za kus jednoducheho a funkcniho kodu...protoze timto jsem zacal a take mi to nefunguje. Radeji bych to resil co nejjednodusseji - dva soubory: mailto.html s formularem a a soubor send.php s vlastnim PHP skriptem.

Dokaze mi sem pls nekdo hodit kus co nejjednodussiho, ale funkcniho kodu?

Jeste jednou moc dekuji.
(odpovědět)
ixteo | 65.181.113.*16.3.2015 18:28
re: Email with an attachment - final solution#
<?php
$to = 'prijemce@email.cz';
$subject = 'Test email';
$random_hash = md5(date('r', time()));
$headers = "From: odesilatel@email.cz";
$headers .= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-".$random_hash."\"";
$attachment = chunk_split(base64_encode(file_get_contents
('image.jpg')));
ob_start();
?>
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: multipart/alternative; boundary="PHP-alt-<?php echo $random_hash; ?>"

--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Hello World!!!
This is simple text email message.

--PHP-alt-<?php echo $random_hash; ?>
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

<h2>Hello World!</h2>
<p>This is something with <b>HTML</b> formatting.</p>

--PHP-alt-<?php echo $random_hash; ?>--

--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: image/jpeg; name="image.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment

<?php echo $attachment; ?>
--PHP-mixed-<?php echo $random_hash; ?>--

<?php
$message = ob_get_clean();
$mail_sent = @mail( $to, $subject, $message, $headers );
echo $mail_sent ? "Mail sent" : "Mail failed";
?>


----------
Teprve když vstáváte s hackingem a uléháte s myšlenkou na něj, máte šanci být hackerem.
(odpovědět)
.cCuMiNn. | E-mail | Website | PGP17.3.2015 0:36
re: Email with an attachment - final solution#
.cCuMiNn. diky moc za radu.
Muzes mi jeste prosim poradit nebo vysvetlit, proc kdyz pouzivam nize uvedeny php kod, tak sice priloha prijde (vcetne predmetu zpravy), ale jiz se nezobrazi "text zpravy - SEM MUZETE ZADAT TEXT EMAILU" ulozeny v promenne $message?? Kde delamchybu?? Diky moc


<?php
//NACTENI SOUBORU DO PROMENNE A ZAKODOVANI POMOCI MIME BASE64
$attachment_name = 'priloha.pdf';
$fp = FOpen ($attachment_name, 'r');
$contents = FRead ($fp, FileSize($attachment_name));
$contents = Chunk_Split(Base64_Encode($contents));
FClose ($fp);

$address = 'email@neco.cz';
$subject = 'Email s prilohou';

$headers = "From: Odesilatel <email.odesilatele@neco.cz>\n";
$headers .= "Reply-To: <email.odesilatele@neco.cz>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\""
."----=MIME_BOUNDRY_main_message\"\n";
$headers .= "X-Sender: Odesilatel <email.odesilatele@neco.cz>\n";
$headers .= "X-Mailer: PHP4\n";
$headers .= "X-Priority: 3\n"; //Priorita emailu 1 = Urgentni, 3 = Normalni
$headers .= "Return-Path: <email.odesilatele@neco.cz>\n";
$headers .= "This is a multi-part message in MIME format.\n";
$headers .= "------=MIME_BOUNDRY_main_message \n";
$headers .= "Content-Type: multipart/alternative; boundary=\""
."----=MIME_BOUNDRY_message_parts\"\n";

$message = "------=MIME_BOUNDRY_message_parts\n";
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$message .= "Content-Transfer-Encoding: quoted-printable\n";
$message .= "\n";
$message .= "\n";
$message .= "\n";
$message .= "------=MIME_BOUNDRY_message_parts--\n";
$message .= "SEM MUZETE ZADAT TEXT EMAILU\n";
$message .= "------=MIME_BOUNDRY_main_message\n";
$message .= "Content-Type: application/octet-stream;\n\tname=\"" . $attachment_name . "\"\n";
$message .= "Content-Transfer-Encoding: base64\n";
$message .= "Content-Disposition: attachment;\n\tfilename=\"" . $attachment_name . "\"\n\n";
$message .= $contents; //Zakodovana priloha
$message .= "\n";
$message .= "------=MIME_BOUNDRY_main_message--\n";

//ODESLANI EMAILU
if (mail($address, $subject, $message, $headers))
{
print 'Email byl úspěšně odeslán.';
}
else
{
print 'Došlo k chybě!';
}
?>
(odpovědět)
ixteo | 188.138.17.*17.3.2015 18:23
re: Email with an attachment - final solution#
ixteo: Text musíš vložit do oblasti MIME_BOUNDRY_message_parts, ne až za ní:

$message .= "SEM MUZETE ZADAT TEXT EMAILU\n";
$message .= "------=MIME_BOUNDRY_message_parts--\n";

Pro jistotu bych také pro odřádkování používal \r\n místo pouhého \n

----------
Teprve když vstáváte s hackingem a uléháte s myšlenkou na něj, máte šanci být hackerem.
(odpovědět)
.cCuMiNn. | E-mail | Website | PGP18.3.2015 9:07
re: Email with an attachment - final solution#
.cCuMiNn. Diky moc ! To odradkovani na to melo celkem podstatny vliv !
(odpovědět)
ixteo | 77.247.181.*18.3.2015 20:43

Zpět
 
 
 

 
BBCode