ugrás a tartalomhoz

SMTP mail küldés hiba

fulton · 2012. Már. 20. (K), 14.01
Sziasztok
Tudna valaki segíteni, sajnos nem jutok előrébb az ügyben:S

(Ugyan nem erről a kódról van szó, de az egyszerűség kedvéért
ilyen röviddel kísérleteztem)

El van helyezve egy php mail küldő az oldalamon, de valamiért nem mindenkinek a gépréről küldi el a levelet nekem az ürlap kitöltését követően, (az smtp miatti formai követelmények megvannak, tehát valós emailt adnak meg..stb több email címmel is próbálkoztunk de semmi)míg tőlem meg pl elküldi nekem az emailt. Tárhelyemen "Smtp hitelesítés" kell elég spéci módon mint majd lentebb látni lehet...

Szal...

Ezt feltöltve a tárhelyemre, nekem pl gond nélkül elküldi a levelet az ürlap kitöltését követően. És még másnak is de pl 1-2 embertől abszolut nem , egyszer sem, akárhányszor próbálkozunk.

ürlap php:
<html>
 <head>
 label {
float: left;
clear: both;
}
 input {
float: left;
clear: both;
font-family: verdana, helvetica, sans-serif;
}
 textarea {
float: left;
clear: both;
width: 250px;
font-family: verdana, helvetica, sans-serif;
font-size: 0.98em;
 }
 #yemail, #yname, #femail, #fname, #comments {
width: 250px;
border: 1px solid #bbb;
background: #eee;
}
 #submit {
margin-top: 1em;
}
 </head>
 
<body>
 <form action="send_mail2.php" method="post">
 <label for="yname">* Neved:</label>
 <input type="text" name="name" id="yname">
 
<label for="yemail">* Email-c&iacute;med:</label>
 <input type="text" name="email" id="yemail">
 <label for="femail">* Üzenet c&iacute;me:</label>
 <input type="text" name="tema" id="yemail">
 <label for="comments">* &Uuml;zeneted:</label>
 <textarea name="message" cols="40" rows="5" id="comments"></textarea>
 <input type="submit" id="submit" name="submit" value="Mehet">
 </form>
 </body>
 </html

send_mail.php :
<?php
 $Name = $_POST['name']; //küldő neve
 $email = $_POST['email']; //küldő e-mail címe
 $recipient = "mail##kukac##címem.hu"; //Aki kapja a levelet
 $mail_body = $_POST['message']; //e-mail szövege
 $subject = $_POST['tema']; //e-mail témája
 $header = "From: ". $Name . " <" . $email . ">rn"; //optional headerfields

 /*mail($recipient, $subject, $mail_body, $header)*/; //mail command :)
 
        require_once "Mail.php";
 $smtp = Mail::factory('smtp', array(
 'host' => 'mail.sunweb.hu',
 'auth' => true,
 'username' => 'felhasznalonev ide beírva',
 'password' => 'jelszó'
 ));
 $sentmail = $smtp->send($recipient, array(
 'From' => "$Name <$email>",
 'To' => $recipient,
 'Subject' => $subject
 ), $header . $mail_body);
 ?>


Érdekes hogy ezt visaszalakítva mail() fügvénnyé, és felrakva egy "smtp" hitelesítést nem kérő tárhelyre gond nélkül elküldi mindenkitől a levelet! még annak az 1-2 embernek is akinek a fent taglalt esetben nem:

<?php
 $Name = $_POST['name']; //küldő neve
 $email = $_POST['email']; //küldő e-mail címe
 $recipient = "mail##kukac##címem.hu"; //Aki kapja a levelet
 $mail_body = $_POST['message']; //e-mail szövege
 $subject = $_POST['tema']; //e-mail témája
 $header = "From: ". $Name . " <" . $email . ">rn"; //optional headerfields
 mail($recipient, $subject, $mail_body, $header); //mail command :)
?>

-----------------
Tovább megyek:
ebben a formában viszont a tárhelyemről is elküldi a levelet MINDENKITŐL!(azoktól a bizonyos emberkéktől is)

mail.php:
<?
 $cimzett = "mail címem";
 $targy = "Szia hubcsika";
 $tartalom = "Arra gondoltam, hogy búvárkodjunk. Üdv, Kata";
 /*mail($cimzett, $targy, $tartalom)*/;
 require_once "Mail.php";
 $smtp = Mail::factory('smtp', array(
 'host' => 'mail.sunweb.hu',
 'auth' => true,
 'username' => 'felhasználónevem',
 'password' => 'jelszavam'
 ));
 $sentmail = $smtp->send($cimzett, array(
 'From' => 'emailcimem',
 'To' => $cimzett,
 'Subject' => $targy
 ), $tartalom);
 ?>


ez egy amolyan direkt levél, miután az illető rákattintott a feltöltött php-ra, meg is kaptam a levelet (a "Arra gondoltam, hogy búvárkodjunk. Üdv, Kata" szöveggel, annyiszor ahányszor csak rá kattintott egymás után.

...most akkor hogy van ez...

Köszönöm előre is válaszotok, és bocsi a terjedelemért.

ui:tudom nem szokás teljes kódot kiirni, de abban bízom így tisztább képet lehet kapni helyzetről.
 
1

Log

Hidvégi Gábor · 2012. Már. 20. (K), 15.07
Célszerű lenne minden fontos eseményt logolni, hogy ki tudd deríteni, mi okozza a hibát.
2

From

janoszen · 2012. Már. 20. (K), 15.55
A From mezobe soha ne ird annak a mailcimet, aki az uzenetet a webes feluleten kuldte. Az SPF miatt ugyanis siman lehet, hogy nem fognak megerkezni a levelek. Ha egyszeruen akarsz tudni valaszolni, hasznald a Reply-To mezot.

Ami egyebkent a kododat illeti, a fejlecekbe kerulo infot mindenkeppen validald, mert konnyu szetvagni egy sortoressel a fejleceket es pl. spamelesre hasznalni a szoftveredet, ha nem teszed.
3

mail

Poetro · 2012. Már. 20. (K), 15.59
Az a mail függvény ebben a formában biztosan nem fog működni.
$header = "From: ". $Name . " <" . $email . ">rn"; //optional headerfields
Mit keres itt az rn? És hogyan van kódolva a feladó neve?
Eleve érdemesebb olyan levélküldő osztályt használni, ami megfelelően tudja kódolni a karaktereket. Nem tudom, hogy a fenti hol bukik el, de sejtésem szerint az UTF-8 karakterekkel gyűlik meg a baja. Az is lehet, hogy az osztálynak csak meg kell adni, hogy a bejövő és kimenő karaktereket UTF-8-ként kezelje, és működni fog.
4

sikerült

fulton · 2012. Már. 21. (Sze), 01.22
A megoldás lényegi része ez volt.
<?php
 
$to_mail = 'mail##kukac##valami.hu';
 $name = $_POST['nev'];
 $theme = $_POST['theme'];
 $email = $_POST['email'];
 $message = $_POST['message'];
 $mail_body = 'Üzenet '.$name.'('.$email.') részéről'.$message;
 

/*mail($sendto_email, $mail_subject, $mail_message, $headers)*/;

 require_once "Mail.php";
 $smtp = Mail::factory('smtp', array(
 'host' => 'mail.sunweb.hu',
 'auth' => true,
 'username' => 'felhasználónevem',
 'password' => 'jelszavam'
 ));
 $sentmail = $smtp->send($to_mail, array(
 'From' => $email,
 'To' => $to_mail,
 'Subject' => $theme
 ), $mail_body)
 
?>

És köszönöm mindenkinek a segítséget!