Nejste přihlášeni
Stránky 1
Zkoušel jsem odstranit vícenásobné odřádkování a i poté s proměnnou PHP_EOL, avšak bez výsledku...
Poté jsem na internetu našel jiný skript, který zde na Endoře mail s přílohou odešle, ale zase do něho nemohu nacpat text, viz kód:
$path_to_file = $_SERVER['DOCUMENT_ROOT']."/prilohy/";
$name = "01.jpg";
$attachment_name = $path_to_file.$name;
$fp = FOpen ($attachment_name, 'r');
$contents = FRead ($fp, FileSize($attachment_name));
$contents = Chunk_Split(Base64_Encode($contents));
FClose ($fp);
$address = 'blahapet@seznam.cz';
$subject = 'Email s přílohou';
$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-2\"\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ě!';
}
Chápu-li to dobře, tak na řádku: $message .= "SEM MUZETE ZADAT TEXT EMAILU\n"; má být text, ale ten se pak nezobrazí, nevíte někdo, co s tím?
Je to www.webhk.cz, ale nejde to na všech doménách na Endoře. Z Podpory mi napsali mail:
Dobrý den,
skript jsem vyzkoušel pustit s plnými právy přímo z příkazové řádky a vypsalo mi to následující:
Multiple or malformed newlines found in additional_header
při volání funkce mail() ve Vašem skriptu. mail() vrátil FALSE.
Po další odpovědi mi řekl že s tím nic neudělá, není programátor.
Ahoj, níže mám skript, který odešle mail s přílohou na předem zadaný mail. Problém je v tom, že ten samý, duplicitní soubor v pohodě odešle mail na Českém hostingu i třeba na Forpsi, ale tady na Endoře nikoliv a nezobrazí se ani žádná chybová hláška:
function encodeMailHeader ($string, $charset = 'iso-8859-2')
{
return sprintf ('=?%s?B?%s?=', strtoupper ($charset),base64_encode ($string));
}
function mail_attachment($filename, $path, $mailto, $from_mail, $from_name, $replyto, $subject, $message) {
$file = $path.$filename;
$file_size = filesize($file);
$handle = fopen($file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$name = basename($file);
$header = "From: ".$from_name." <".$from_mail.">\n";
$header .= "Reply-To: ".$replyto."\n";
$header .= "MIME-Version: 1.0\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\n\n";
$header .= "This is a multi-part message in MIME format.\n";
$header .= "--".$uid."\n";
$header .= "Content-type:text/html; charset=iso-8859-2\n";
$header .= "Content-Transfer-Encoding: 7bit\n\n";
$header .= $message."\n\n";
$header .= "--".$uid."\n";
$header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\n"; // use different content types here
$header .= "Content-Transfer-Encoding: base64\n";
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\n\n";
$header .= $content."\n\n";
$header .= "--".$uid."--";
mail($mailto, $subject, "", $header);
}
$email = "blahapet@seznam.cz";
$domain = "SONN s.r.o. - ".$_SERVER['SERVER_NAME']."";
$subject = "SONN - Vaše objednávka";
$email_from = "noreply@sonn.cz";
$zprava .= "<p>Test, test, test...</p>";
$path_to_file = $_SERVER['DOCUMENT_ROOT']."/prilohy/";
$name = "01.jpg";
mail_attachment($name, $path_to_file, $email, $email_from, encodeMailHeader($domain), $email_from, encodeMailHeader($subject), $zprava);
Funkce mail_attachment není z mojí hlavy a tak mě napadá, jestli tam je něco, co např. Endora nepodporuje apod.
Tak asi budu muset, níže je vyjádření z podpory Endory...
Dobrý den,
Důvodem nedoručení je to, že server vyskytl na blacklistu po spamovém útoku z našeho serveru a český hosting filtruje e-maily podle blacklistu. Problémový uživatel byl zablokován a zažádal jsem o delist. Nejdéle do 24 hodin by jsme měli obdržet vyjádření blacklistu ohldně delistace. Omlouváme se za komplikace.
Případně doporučuji odesílat poštu pomocí nějakého SMTP serveru (pozor na omezení počtu odeslaných e-mailů u daných SMTP serverů)
To jo, ale co s tím...?
To jsem si myslel taky... Jenže pak jsem ten samej soubor překopíroval na Český hosting, tam ho spustil a mail na danou adresu na Českým hostingu normálně dorazil. Vše jsem zkoušel samozřejmě opakovaně a v jednom případě vždy nedošel, tzn. skript na Endoře --> mail na ČH a pak zase došel - skript na ČH --> mail na ČH.
Dobrý den,
níže mám skript, který odsud z Endory nedoručí zprávu do schránky, která je hostovaná u Českého hostingu (všude jinam ano). Chci se zeptat, lze-li skript nějak upravit, aby byl korektní (hlavičku emailu) bez nutnosti použití SMPT serveru?
Předem moc děkuji!
<?php
function encodeMailHeader ($string, $charset = 'iso-8859-2')
{
return sprintf ('=?%s?B?%s?=', strtoupper ($charset),base64_encode ($string));
}
if($_POST["odeslat_mail"] == "ok"):
$jmeno = $_POST["jmeno"];
$email = $_POST["email"];
$predmet = $_POST["predmet"];
$zprava = $_POST["zprava"];
$domain = "Nový mail";
$headers .= "From: ".encodeMailHeader($domain)."<blahapet@seznam.cz>\n";
$headers .= "Content-Type: text/html; charset=iso-8859-2;\n";
$cont .= '<h2>Nový mail</h2>';
$cont .= '<p class="text">';
$cont .= '<strong>Jméno a příjmení:</strong> '.$jmeno.'<br />';
$cont .= '<strong>E-mail:</strong> <a href="mailto:"'.$email.'>'.$email.'</a><br />';
$cont .= '<strong>Předmět:</strong> '.$predmet.'<br />';
$cont .= '<strong>Text mailu:</strong> '.$zprava;
$cont .= '</p>';
mail($email, encodeMailHeader($predmet), $cont, $headers);
endif;
?>
Stránky 1