mail wird nicht versandt

Headymaster

Erfahrenes Mitglied
Hallo!

Habe ein Problem.... und zwar versuche ich eine eMail nach einer Registration mit den Zugangsdaten an den User zu schicken....

Das problem ist nur das die email einfach nicht ankommt.... :(

Hier mal der Codeausschnitt:
PHP:
$mail .= "<p align=\"center\"><font size=\"+2\">".$this->lang['register_thx']."</font></p>";
						$mail .= "<p></p><p></p>";
						$mail .= "<p align=\"left\"><b>".$this->lang['register_login'].":</b> ".$user_login."</p>";
						$mail .= "<p align=\"left\"><b>".$this->lang['register_pass'].":</b> ".$pw."</p>";
																		  
						$headers  = 'MIME-Version: 1.0' . "\r\n";
                        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
						mail($user_email, $this->lang['register'], $mail, $header, $headers);
						
						header("refresh:3;url=index.php");

Also ich habe den Header für html gesetzt nur naja die Mail wird halt gar nicht erst gesendet... :(

Würde mich super freuen wenn ihr da Rat hättet :)

MFG Niels
 
Was steht in der $header-Variable? Wäre doch interressant zu wissen... Was ich mir denken kann:
http://de.php.net/manual/de/function.mail.php hat gesagt.:
[...]
Anmerkung: Um eine E-Mail zu senden, muss die E-Mail einen From-Header enthalten. Dies kann entweder durch Setzen eines additional_headers-Parameters oder durch Setzen eines Standardwertes in der php.ini geschehen.
[...]

P.s: Nee, nich du schon wieder... :D
 
Hehe ich werde euch öfter mal nerven :P^^ Ne mometan habe ich paar mehr probs :)

So 1. zum Passwort.

Das Passwort ist für den jeweiligen Useraccount. Da ein zufälliges Password erstellt wird, schicke ich mit der Mail dem User an seine bei der Registration angegebene email-Adresse sein Password.
Der User kann ja nach erhalt der email das Passwort sofort ändern und naja ich habe das bis jetzt schon auf vielen Seiten so gesehen....

Was soll denn daran so schlimm sein, durch das Passwort bekommt man hja nur Zugang zu dem Useraccount :)

So 2. zum Header....

Habe gesehn was du meinst....habe zwar From drin aber nicht in der richtigen formatierung :) Werde das mal eben ändern :)

MFG Niels

//EDIT

So nochma abgeändert:

PHP:
$mail .= "<p align=\"center\"><font size=\"+2\">".$this->lang['register_thx']."</font></p>";
						$mail .= "<p></p><p></p>";
						$mail .= "<p align=\"left\"><b>".$this->lang['register_login'].":</b> ".$user_login."</p>";
						$mail .= "<p align=\"left\"><b>".$this->lang['register_pass'].":</b> ".$pw."</p>";
						
						$from .= 'From: '.$header.' <'.$admin_mail.'>' . "\r\n";
																		  
						$headers  = 'MIME-Version: 1.0' . "\r\n";
                        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
						mail($user_email, $this->lang['register'], $mail, $from, $headers);

HMM mail kommt immer noch net an :P

Hatt vorher mal mit nem Template ausprobiert weil ich das so eigentlich machen wollte....da hatte ich auch die Mail bekommen, nur war diese leer^^

Dort hatte ich das ganze so:
PHP:
// Mail erstellen und versenden
						$mail = $this->tpl->showtpl("user/regdata", array("reg_thx" => $this->lang['register_thx'],
						                                                  "lang_login" => $this->lang['register_login'],
																		  "lang_password" => $this->lang['register_pass'],
																		  "login" => $user_login,
																		  "password" => $pw));
																		  
						$headers  = 'MIME-Version: 1.0' . "\r\n";
                        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
						mail($user_email, $this->lang['register'], $mail, $header, $headers);

Das Template:
HTML:
<p align="center"><font size="+2">[reg_thx]</font></p>
<p></p>
<p></p>
<p align="left"><b>[lang_login]:</b>  [login]</p>
<p></p>
<p align="left"><b>[lang_password]:</b> [password]</p>

MFG Niels
 
Ich würde den Benutzer direkt bei der Registrierung sein eigenes Passwort wählen lassen und erst durch die Bestätitung der E-Mail-Adresse (durch Bestätigungscode) zusammen mit einer Wiedereingabe desgewählten Passworts den Benutzer freischalten. Damit wird sichergegangen, dass die E-Mail-Adresse existiert und aber auch dem sich registrierte Benutzer gehört, da er dies ja mit dem gewählten Passwort bestätigen muss.
Hat jemand sein Passwort vergessen und möchte es ändern, würde ich ähnlich verfahre: Wieder wird eine Bestätigungs-E-Mail geschickt (die E-Mail-Adresse ist ja verifiziert), wobei die Bestätigung und Änderung des Passworts allerdings innerhalb einer gewisses Zeitraums (etwa 15 Minuten) erfolgen muss. Ist die Zeit abgelaufen, passiert nichts und das alte Passwort ist weiterhin gültig.
 
das wäre natürlich auch ne Idee :)

Werde mal schauen ob ich das ändern kann :)^^

Nichts desto trotz funktioniert das mit der Mail ja erstmal überhaupt net :(

MFG Niels
 
Um meine Ausführung noch zu erweitern: Die Bestätigung der E-Mail-Adresse und Registrierung würde ich natürlich auch zeitlich befristen. Denn sollte jemand aus Spaß oder versehentlich eine fremde E-Mail-Adresse angeben und diese nicht bestätigt werden, sollte die misslungene Registrieung natürlich irgendwann ungültig und die E-Mail-Adresse wieder zur Registrierung zugelassen sein. Es ist also immer nur ein Antrag, der ohne fristgerechte Bestätigung hinfällig wird.
 
So also habe das nun so, dass man sich nur einloggen kann, wenn der Account aktiviert ist.

Dies regle ich einfach über ne Spalte in der DB namens `active`.

Ist active 0 dann kann man sich nicht einloggen und bekommt gesagt dass der Account noch inaktiv sei und wenn man sich registriert wird active auf 0 gesetzt und man bekommt gesagt dass man ne Mail bekommt mit nem Aktivierungslink.

So jetzt muss ich nur noch ne Methode zum Account aktivieren schreiben das wird fix gehen.
Nur wie könnte ich nun nen Aktivierungslink mitschicken, wenn das mit der Mail noch nicht funktioniert :)

MFG Niels
 
Gehört folgendes
PHP:
                        $from .= 'From: '.$header.' <'.$admin_mail.'>' . "\r\n";
                                                                          
                        $headers  = 'MIME-Version: 1.0' . "\r\n";
                        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                        mail($user_email, $this->lang['register'], $mail, $from, $headers);
nicht eigentlich so? Weil der 5.Parameter von [phpf]mail[/phpf] sind additional_parameters...
PHP:
                        $headers .= 'From: '.$header.' <'.$admin_mail.'>' . "\r\n";
                                                                          
                        $headers  .= 'MIME-Version: 1.0' . "\r\n";
                        $headers  .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
                        mail($user_email, $this->lang['register'], $mail, $headers);
 
Jup habe es nun so aber geht immer noch nicht.

Die Mail wird einfach nicht versendet... :(

PHP:
// Mail erstellen und versenden
						$mail = "Ja nur nen Test ;-)";
						$headers .= 'From: '.$header.' <'.$admin_mail.'>' . "\r\n";											  
						$headers  = 'MIME-Version: 1.0' . "\r\n";
                        $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
						mail($user_email, $this->lang['register'], $mail, $header, $headers);
						
						header("refresh:3;url=index.php");

MFG Niels
 
Zurück