2009-07-09 7 views
4
$to = "[email protected]"; 
$subject = "Hi!"; 
$body = "Hi,\n\nHow are you?"; 
if (mail($to, $subject, $body)) { 
    echo("pMessage successfully sent!/p"); 
} else { 
    echo("pMessage delivery failed.../p"); 
} 

Schrieb einen grundlegenden Sendmail-Code php, die aber es gibt mir die folgenden Fehler gibt:php senden keine E-Mail Code arbeitet

Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\xampp\htdocs\mail.php on line 5 Message delivery failed...

Ich haben die `` php.ini und setzte [email protected] aber immer noch das Problem, besteht fort. Schreiben des Mail-Skripts zum ersten Mal.

Mache ich etwas falsch? Gibt es einen besseren Weg, dies zu tun?

+2

Ich denke, es ist erwähnenswert ist, dass Ihre echte E-Mail setzen Adresse im Klartext im Internet fragt nur, um es von Spambots geerntet zu bekommen. Ich hoffe, Sie haben es nur ein wenig verschleiert und ich sehe es nur nicht, weil ich Ihre echte E-Mail-Adresse nicht kenne. : D –

Antwort

2

additional_headers (optional)

String to be inserted at the end of the email header.

This is typically used to add extra headers (From, Cc, and Bcc). Multiple extra headers should be separated with a CRLF (\r\n).

Note: When sending mail, the mail must contain a From header. This can be set with the additional_headers parameter, or a default can be set in php.ini. Failing to do this will result in an error message similar to Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. The From header sets also Return-Path under Windows.

Ich hoffe, dass hilft.

1

Zuerst prüfen Sie, ob Sie die korrekte php.ini bearbeitet haben - fügen Sie phpinfo(); zu Ihrer Skript-Ausgabediagnose hinzu, einschließlich der Position von php.ini. Sie sollten hier auch den konfigurierten Wert "sendmail_from" sehen können.

dass Failing, bieten eine Aus-Header, wie usoban

$hdrs="From: [email protected]"; 
mail($to, $subject, $body, $hdrs); 
+0

Ich habe die richtige php.ini-Datei bearbeitet, aber immer noch gibt es Fehler – anand

1

angezeigt Wenn Sie die richtige php.ini bearbeitet und es Ihre Änderung nicht widerspiegeln, könnten Sie Ihren Web-Dienst neu gestartet werden soll, wie viele Umgebungen werden die php.ini nur laden, wenn der Server gestartet wird.

0

Anstatt die Formularadresse in der php.ini zu setzen, senden Sie sie einfach in den Kopfzeilen wie usoban stattdessen.

Dies wird Ihnen Kopfschmerzen ersparen, wenn Sie eine andere Website auf dem gleichen Setup hosten und vergessen, die Header beim nächsten Mal festzulegen.

0

PHP Mail() -Funktion erzeugt eine Menge Probleme. Wenn Sie es endlich auf Ihrem Server installieren, werden Sie feststellen, dass Ihre E-Mails in Spam-Ordnern Ihrer Benutzer landen.

würde ich empfehlen, E-Mail senden eine dieser PHP SMTP-Bibliotheken statt:

1

Ich stieß auf das gleiche Problem und es endete, weil mein Server die [email protected] als von E-Mail-Adresse verwendet, obwohl ich meine eigenen in den Headern angegeben.

Die Antwort war ich woanders fand einen fünften Parameter an den Mail-Anruf hinzuzufügen, um das System zu zwingen, die von E-Mail-Adresse zu verwenden, die ich angegeben:

$from = '[email protected]' 
$xheaders = "From: " . $from . " <" . $from . ">\n"; 
$i = mail("$useremail","$subject","$content",$xheaders,'-f [email protected]');