mail() --> Mails werden nicht gesendet

Miraculixx

Erfahrenes Mitglied
Hallo!

Ich hab gesehen, dass die mail()-Funktion sehr gerne Probleme macht (zumindest wenn man die Threads dazu in diesem Forum zählt...) ;)

Trotz aller möglicher Anleitungen, Tutorials und Foren bin ich bei meinem Problen noch zu keiner Lösung gekommen.

Der Code:
PHP:
mail("meine@mail.com", "betreff", "nachricht", "From: Ich <meine@mail.com>");

Es erscheint keine Fehlermeldung - error_reporting(E_ALL); ist gesetzt.

Und das Mail kommt auch nicht an - weder in der Inbox noch im Spamfilter.

Hab mal in meiner phpinfo() nachgesehen, folgende Werte sind gesetzt:
sendmail_path: /usr/sbin/sendmail -t -i -f
MAIL: /var/mail/root

Ich schließe daraus, dass ein Mailserver korrekt eingerichtet und konfiguriert ist!? Genau kann ich das nicht sagen, weil ich mir den Webspace bei einer Firma aus deutschland gemietet habe (http://www.speicherhosting.com).

So, das ist glaub ich alles was ich euch sagen kann.
Ich weiß echt nicht mehr weiter :(
Hoffentlich kann mir hier jemand weiter helfen. Ich bin euch jedenfalls jetzt schon für eure Hilfe dankbar!
 
Hast es mal ohne "From" versucht?

PHP:
mail("meine@mail.com", "betreff", "nachricht");

mit wäre es überrigens so
PHP:
mail("meine@mail.com", "betreff", "nachricht", "From: meine@mail.com");
 
Also nur als Info @GSMaster - wenn du das mit den spitzen Klammern machst, dann geht das auch (Das unterstützen fast alle Mailprogramme) denn dann steht da nur noch "ICH" im Absender und erst wenn du die öffnest dann die richtige Mailadresse (find ich persönlich hübscher)...

@Miraculixx: Speicher dir mal das Ergebnis in einer Variable (was die Mail-Funktion zurück gibt) und mach ein var_dump drauf ... das Ergebnis davon könnte hier helfen ...
 
So, hab das ganze jetzt noch mal Versucht, allerdings ohne befriedigendem Ergebnis.

Meine Test-Datei sieht folgendermaßen aus:

PHP:
<?php

error_reporting(E_ALL);

$val = mail("xxx@gmail.com", "betreff", "nachricht", "From: xxx@gmail.com");
var_dump($val);

$val = mail("xxx@gmail.com", "betreff", "nachricht");
var_dump($val);

?>

Und die Ausgabe sieht so aus:
Code:
bool(true) bool(true)

Es kommt kein Mail an - hab schon 3 verschiedene Mail-Adressen versucht. Auch im Spam-Ordner lässt sich nichts finden.

Hat wer eine Idee wo das Problem liegen könnte?
 
Versuche es doch einmal mit dem STD-Script aus dem PHPManual:
PHP:
<?php
$empfaenger = 'niemand@example.com';
$betreff = 'Der Betreff';
$nachricht = 'Hallo';
$header = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($empfaenger, $betreff, $nachricht, $header);
?>

Dort werden unter anderem Header gesetzt die für viele MailProvider vorhanden sein müssen.
Es gibt noch mehr Header aber ich denke diese Mail müsste auf jedenfall ankommen..

MFG
Sandro
 
Mir fallen da auf anhieb nur noch drei Möglichkeiten ein. Die allerdings fast alle auf das Gleiche hinaus laufen und ich nicht weiß ob dir das wirklich weiter hilft.

1. dein Provider könnte die mail()-Funktion abgeschaltet haben (ist meistens bei Free-Web-Hosts). Immerhin lässt sich über sie wunderbar Spam verschicken.
2. dein Provider könnte bei den eMail-Anbietern bereits auf der Black-List (d.h. eMails von einem Host werden komplett ignoriert) stehen. Dies geschieht, wenn man mit der mail()-Funktion eMail-Anbieter zuspammt.
3. der Mailserver deines Hosts behandelt deine eMails mit so niedriger Priorität, dass sie erst nach Tagen ankommen.

Ich würde dir empfehlen mal bei deinem Host bezüglich 1.) nach zu fragen. An deinem PHP-Code kann es denke ich auf jeden Fall nicht liegen, der ist Goldrichtig ;)

Anmerkung: Mir ist eben noch eingefallen, du müsstest noch nicht einmal bei deinem Host nachfragen. Du könntest einfach selber nachgucken, wenn du dir die phpinfo() ausgibst. In der Doku auf php.net/mail findest du die jeweiligen Zeilen dokumentiert, wo du die Infos aus der phpinfo() bekommst. (allerdings kann ich dir da nicht so wahnsinnig weiter helfen, da ich mich mit der phpinfo() nicht SO gut auskenne)

@GiFt-ZwErG
Was hat den der Header mit dem Problem zu tun? Im Gegenteil... ich würde sogar sagen, dass ein Header das Problem eher noch verkompliziert ;) !Ein header kann optional angegeben werden!(siehe Doku) Wenn keiner vorhanden ist, ist die Warscheinlichkeit meines Wissens nach sehr viel größer, dass die eMail beim Empfänger richtig angezeigt werden kann.
 
Zuletzt bearbeitet:
1. Würde diese Sperre eine Fehlermeldung ausgeben ( ala` SafeMode Restiction )
2. Dann würde er die Email trotzdem bekommen ( allerdings im Spam )
3. Das wäre eine Möglichkeit.

MFG
 
Stimmt, 1.) ist quatsch uu" habe da irgendwie nen gravierenden Denkfehler drin gehabt, sry
Was allerdings 2.) betrifft ist das möglich! Was du meinst die die Grey-List, wo die eMails zwar ankommen, allerdings im Spam-Ordner landen. Alles was auf er Black-List steht wird gar nicht erst angenommen. Zumindest hat mir das so mein Provider erklärt...
 
So ich habe jetzt mal bei meinem Anbieter nachgefragt.
Der meinte zuerst, dass die Mails vielleicht im Spam-Ordner liegen. Ich hab ihm jetzt mal geantwortet, dass die Mails definitiv nicht ankommen, auch nicht im Spam-ordner.

Aber die Funktion ist grundsätzlich freigeschalten und müsste funktionieren. Es ist außerdem kein Free-Hoster sondern ich bezahle für den Service.

Hat vielleicht von euch noch jemand eine Idee, worin das Problem liegen könnte?
Wäre euch sehr dankbar! :)
 
Zurück