PHP mail () - Funktion funktioniert nicht auf der web-host
Habe ich Probleme E-Mails mit der php mail () - Funktion. Ich weiß das php-script habe ich funktioniert, weil ich eine identische Kopie auf einem anderen web-hosting-Unternehmen, und es funktioniert dort.
Ich denke, es hat zu tun mit der web-hosting-Unternehmen selbst. Wißt Ihr, was ich tun muss, damit es funktioniert? Gibt es etwas, das ich brauche, um Ihnen zu sagen, zu installieren? Ich denke, Sie sind auf Apache läuft.
Dank,
Amit
Zur Klarstellung, hier ist die E-mail-Skript.
<?php
$to = '[email protected]';
$subject = 'Contact from your website';
$message =
'Below are details from the Contact Us Form ' . "\n\n" .
'Name: ' . $_REQUEST['name'] . "\n\n" .
'Telephone Number: ' . $_REQUEST['phone'] . "\n\n" .
'E-mail address: ' . $_REQUEST['email'] . "\n\n" .
'Comments: ' . $_REQUEST['comments'];
$email = $_REQUEST['email'];
$headers = 'From: ' . $email . "\r\n" .
'Reply-To: ' . $email . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/plain; charset=ISO-8859-1";
//SPAM CHECK
$str = $_REQUEST['spam'];
$strE = $_REQUEST['email'];
if( $str != "10" || $strE == "")
{
echo "<div align='center' style='color:red'>One or more of the form fields were incorrect, you will be redirected to the contact page within 3 seconds.</div>";
?><meta http-equiv="refresh" content="3;URL=http://engineercreativity.com/samples/biz/contact"><!-- EDIT THIS -->
<?php
} else {
mail ($to, $subject, $message, $headers);
?>
<meta http-equiv="refresh" content="0;URL=http://engineercreativity.com/thankyou.html"> <!-- EDIT THIS AS WELL -->
<!--
<div class="text" align="center" style="text-align: center; color: green;">
<br/>
Thank you for contacting us!
<br/>
The message was succesfully sent!
</div>
-->
<?php
}
?>
- Es geben Ihnen jede Art von Fehler - /Warnmeldung ?
- Wie pro Ihren Antrag - es scheint, als ob Sie verwendet haben, etwas ähnliches wie die Standard-Header aus der Dokumentation auf der php-mail. Spam-Filter in der Regel, wie haben Sie einige zusätzliche Bezeichner, um sicherzustellen, dass die E-Mail von einer legitimen Quelle, der keinen Hänger über die Identifizierung selbst. transio.com/content/how-pass-spam-filters-php-mail zumindest die return-path-header ist eine sehr gute Idee.
- Ich werde es einmal versuchen. Danke!!!
- kein Fehler/Warnung. Es geht um die danke-Seite.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn es ein eigener server ist, stellen Sie sicher, dass postFix E-Mail installiert (http://www.postfix.org/)
Begegnete mir dieser Fehler heute selbst als SMTP-server nicht verfügbar war (ich nahm an, da es standardmäßig aber nicht)
Sind Sie die Durchführung jeder Art von Prüfungen auf die E-mail-Funktion? Es sollte true zurückgeben, wenn er ausgeführt wird, erfolgreich, zu wissen, dass würde uns helfen, reduzieren auf andere mögliche Gründe, die Sie möglicherweise nicht empfangen werden der mail, wie Filter, server oder smtp-Konfiguration etc. Etwas wie:
Sollte Ihnen eine bessere Idee, und sterben sollte geradezu, wenn die Funktion nicht vorhanden aus irgendeinem Grund. Der Php-mail-Funktion ist unglaublich pingelig auf Kostenlose web-hosts, da es Häufig missbraucht wird für spam-Zwecke.
Posting vollständigen Header können auch helfen, legitime Nachrichten spam tests.
Schreiben ein wirklich einfaches Skript, wie
Führen Sie es, und stellen Sie sicher, dass die E-mail ist nicht gefangen von Ihrem spam-filter (wenn Sie es sich leisten können, richten Sie eine eigene domain/DNS-server
netcat -l -p 25
ist ausreichend).Wenn das nicht funktioniert, Kontaktieren Sie den support von Ihrem web-hoster. Haben Sie ein FAQ oder sonstige Dokumentation?
Was auch immer die Lösung, überprüfen Sie Ihre E-mail()'s Ausgabe.
Häufigste Lösung
Fragen Sie Ihren hosting-Unternehmen, wenn Ihre aktuellen web-host SMTP-Einrichtung zur Weiterleitung von E-Mails aus Ihren Skripts. Wenn Sie "Nein" sagen, dann könnten Sie einen anderen SMTP-host, für Sie zu verwenden wie smtp.example.com oder Sie müssen verwenden Sie ein anderes SMTP-relay (überprüfen Sie mit Ihrem aktuellen e-mail-Anbieter).
Alternative
Den SMTP-server Sie reden vielleicht nicht verstehen, was das script sagt. Ich habe gesehen, Situationen vor, wo mein mail script funktioniert mit Postfix aber nicht qmail. Dies ist leicht gelöst durch die Verwendung eines Drittanbieter-e-mail Bibliothek: es gibt haufenweise gibt, aber mein Favorit ist Gedeihen ist (http://flourishlib.com/docs/fEmail).
mail() Funktion von php, schicken Sie Ihre mail auf junk-nur. Verwenden Sie stattdessen SMTP-php-mailer-Funktion.
Warum wir SMTP nutzen sollten, anstatt die PHP-mail():
SMTP melden Sie sich in einem Live-Konto auf einem Mail-Server und senden Sie die E-mail über SMTP an einen anderen Mailserver. Wenn die E-mail-server richtig konfiguriert ist, werden Ihre mails von einem Konto auf einem Mail-Server und wird nicht wind-up als spam gekennzeichnet.
Mail versendet mit der mail() Funktion gesendet wird, mit sendmail in den meisten Fällen. Es gibt keine Authentifizierung Los und es wird fast immer als spam gekennzeichnet, wenn Sie die "Von:" in den zusätzlichen Headern.
Dies ist, weil, wenn man einen Blick auf eine original-Datei per E-Mail in sagen, Google Mail, sehen Sie die Header gesendet werden. Senden Sie eigentlich aus [email protected] und nicht [email protected] wie Sie gesagt hatte, daß die mail-Funktion zu tun.
Wenn Sie SMTP verwenden, und die ursprüngliche Auffassung, die E-Mail tatsächlich gesendet werden aus [email protected]
Können Sie herunterladen SMTP Klasse aus:
mail()
verarbeitet die mail an den angegebenen SMTP-server. Es macht keinen Sinn, ich benutze das Wort "anstatt". Beide verwendet wird.mai()
Protokolle SMTP.