Autor | Zpráva | ||
---|---|---|---|
janky Profil |
#1 · Zasláno: 20. 4. 2017, 14:22:24
Dobrý den, nevíte proč mi nepřijde email ? Podmínka vyhodnotí odeslání úspěšně.
if ($_POST){ if (isset($_POST['priloha'])) { //Práce z přílohou pokud se příloha odeslala $file_tmp_name = $_FILES['priloha']['tmp_name']; $file_name = $_FILES['priloha']['name']; $file_size = $_FILES['priloha']['size']; $file_type = $_FILES['priloha']['type']; $file_error = $_FILES['priloha']['error']; $handle = fopen($file_tmp_name, "r"); $content = fread($handle, $file_size); fclose($handle); $encoded_content = chunk_split(base64_encode($content)); } if (isset($_POST['zprava']) && $_POST['zprava']) { $message = filter_var($_POST["zprava"], FILTER_SANITIZE_STRING); $boundary = md5("sanwebe"); $headers = "MIME-Version: 1.0\r\n"; $headers .= "From:".$from_email."\r\n"; $headers .= "Reply-To: ".$reply_to_email."" . "\r\n"; $headers .= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n"; $body = "--$boundary\r\n"; $body .= "Content-Type: text/plain; charset=ISO-8859-1\r\n"; $body .= "Content-Transfer-Encoding: base64\r\n\r\n"; $body .= chunk_split(base64_encode($message)); $body .= "--$boundary\r\n"; $body .="Content-Type: $file_type; name=".$file_name."\r\n"; $body .="Content-Disposition: attachment; filename=".$file_name."\r\n"; $body .="Content-Transfer-Encoding: base64\r\n"; $body .="X-Attachment-Id: ".rand(1000,99999)."\r\n\r\n"; $body .= $encoded_content; $sentMail = mail($recipient_email, $subject, $body, $headers); if($sentMail) //output success or failure messages { $out=('Díky za váš email'); }else{ $out=('Email nejde odeslat.'); } } else $out = 'Formulář není správně vyplněný!'; } |
||
Enko Profil |
#2 · Zasláno: 20. 4. 2017, 16:52:39
Díval jsi se do spamu nebo do všech složek v mailboxu? Zkoušel jsi se dívat do logů na mailserveru pokud můžeš? Nemáš zapnutou/špatně nastavenou SPF? Zkoušel jsi přidat do funkce mail() pátý parametr na navrácení chybové zprávy z mailserveru? Tuším že to je parametr -f.
|
||
janky Profil |
#3 · Zasláno: 21. 4. 2017, 14:15:38
Psal jsem ještě na podporu hostingu, tam my bylo odpovězeno tak:
Seznam má blokované odosielanie z ich email adries mimo ich mail servery pomocou SPF. Tj náš server nemôže odoslať mail z adresy končiacou na @seznam.cz Ak tohoto chcete docieliť, musíte odosielanie vykonať pomocou SMTP prihlásenia na email server seznamu za pomoci vašeho mena a hesla. TPak mi tam poradili používat PHPmailer. Ten sem si tedy stáhnul a vložil na web ale stejně se po kliknutí na submit email neodešle... require "class.phpmailer.php"; $prijemce = 'michal.jankovec@seznam.cz'; $mail = new PHPMailer(); $mail->From = $_POST['email']; // adresa odesílatele skriptu $mail->FromName = "Mailer Test"; // jméno odesílatele skriptu (zobrazí se vedle adresy odesílatele) $mail->AddAddress($prijemce); // přidáme příjemce $mail->SetLanguage("cz"); $mail->Subject = 'Předmět emailu'; // nastavíme předmět e-mailu $mail->Body = $_POST['zprava']; $mail->WordWrap = 50; // je vhodné taky nastavit zalomení (po 50 znacích) $mail->CharSet = "utf-8"; // nastavíme kódování, ve kterém odesíláme e-mail $mail->AddAttachment($_FILES['priloha']['tmp_name'], $_FILES['priloha']['name']); if(!$mail->Send()) { // odešleme e-mail $output= 'Došlo k chybě při odeslání e-mailu.'; $output= 'Chybová hláška: ' . $mail->ErrorInfo; } else { $output= 'E-mail byl v pořádku odeslán.'; } $output =' <form method="POST">'._xsrfProtect().' <ul class="form-style-1"> <li> <label>Váš email<input type="text" name="email" class="field-long"/></label> </li> <li> <label>Vaše zpráva <span class="required">*</span></label> <textarea name="zprava" id="field5" class="field-long field-textarea"></textarea> </li> <li> <label>Soubor <input type="file" name="priloha" /></label> </li> <li> <input type="submit" value="Odeslat email" class="field-divided"/> </li> </ul> </form>'; |
||
Enko Profil |
#4 · Zasláno: 21. 4. 2017, 14:42:06
Zkus to poslat na nějakou jinou emailovou adresu. Založ si například dočasný mailbox, pokud nemáš jinde než na seznamu a také změň hodnotu $_POST['email'] na jinou než na doméně seznam.cz
|
||
janky Profil |
#5 · Zasláno: 21. 4. 2017, 14:55:13
Ještě sem zapoměl napsat že mi to nevypíše žádnou zprávu ta podmínka ... ani chyba ani že byl odeslán...
|
||
Enko Profil |
#6 · Zasláno: 21. 4. 2017, 15:47:33
Zapni si výpis chyb. Nic se ti nevypíše, protože tu proměnou $output přepíšeš zobrazením formuláře. Pojmenuj si jí nějak jinak.
|
||
Davex Profil |
#7 · Zasláno: 21. 4. 2017, 19:00:21
janky:
„musíte odosielanie vykonať pomocou SMTP prihlásenia na email server seznamu za pomoci vašeho mena a hesla“ Poradili ti odesílat pomocí SMTP a ty nepoužíváš SMTP. Chybí tam něco takového: $mail->isSMTP(); $mail->Host = "smtp.seznam.cz"; $mail->Port = 25; $mail->SMTPAuth = true; $mail->Username = "michal.jankovec@seznam.cz"; $mail->Password = "heslodoseznamu"; |
||
Časová prodleva: 7 let
|
0