Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo Leute, ich habe ein Problem ich versuche mit PHP eine E-Mail mit der Funktion mail() zuverschicken. (Arbeite aber noch mit Xampp!!)

Nur leider kommt nichts an, wenn ich es an meine Adresse (@gmail.com) sende?

Leider bekomme ich bei PHP keine Fehlermeldung, wo kann der Fehler liegten?

Error Report ist angeschaltet mit:

error_reporting(E_ALL | E_STRICT);


echo $sender;
echo $newmail;
echo $betreff;
echo $mailtext;
mail($newmail, $betreff, $mailtext, "From: $sender ");[/PHP]

Alles wird ausgegeben, nur wird die E-Mail nicht versendet. Muss der Sender eine reale Adresse sein? Muss ich den bei Xampp irgendwie vorher einrichten?

Bin verzweifelt.

Geschrieben

schreib dein Script doch einfach mal so um, dass es dir ausgibt, ob der Mailversand an den Server erfolgreich war.

Existiert überhaupt ein Mailserver/Account für den Versand, oder hast du da gar nichts eingerichtet?

Geschrieben (bearbeitet)

Also SMTP habe ich nicht installiert, ich dachte für mail() ist es nicht notwendig? Oder doch? Fall ja, reicht es wenn ich in der php.ini einen SMTP eintrage?

Muss

$sender

ein bestimmtes Format haben sprich NAME@localhost.de ?

Oder geht auch NAME@DOMAIN.de ?

Ich bin immernoch unter Xampp bitte beachten.

Mailserver muss ich nicht extra installieren, Mercury von Xampp reicht völlig aus oder?

Bearbeitet von Steusi
Geschrieben (bearbeitet)

Willst du LOKAL eine Mail verschicken, oder "nach draussen ins Internet"?

Für lokal reicht der Mercury - klar. Aber wenn du einem externen Mailserver eine Mail schicken willst, dann musst du auch seine entsprechenden Daten eintragen, damit du richtig authentifiziert wirst, er die Mail überhaupt annimmt und auch weiterschickt.

Du kannst aber Mercury die Mails über deinen Account bei einem Mail-Provider wie GMX.de, web.de o.ä. ausliefern lassen per SMTP. Den Mailserver erst einmal eintragen musst du aber dennoch.

Der muss PHP aber erst einmal bekannt gemacht werden. Und zwar in der php.ini in dem Bereich [mail function]. Also willst du die Mails von Mercury ausliefern lassen, dann trag seine Daten dort ein. Soll es über einen externen Mailserver per SMTP gehen, dann trag dessen Daten an der entsprechenden Stelle ein.

Wie wenn nicht üer SMTP soll denn die Mail sonst verschickt werden? :confused:

Bearbeitet von Crash2001
Geschrieben

Ich denke mal, ich werde es einfach mal über web oder gmx testen, dann ist die Umstellung vielleich nicht so kopliziert, wenn ich es nachher auf den Webspace lade, da bräuchte ich dann doch nur die Mail-Adresse ändern?

Mal sehen ob ich das alles so hinbekomme.

Es gibt doch auch die Möglichkeit über den phpmailer!

Dazu habe ich folgendes gefunden:

//// VERSENDEN DER EMAIL ////
function send_email($empf, $mailtext, $betreff, $anhang) {

$mail = new PHPMailer();

$mail->IsSMTP(); // send via SMTP
$mail->Host = “mein.mailserver.de”; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = “XXXXX”; // SMTP username
$mail->Password = “XXXXXX”; // SMTP password

$mail->From = “meine@emailadresse.de”;
$mail->FromName = “Mein Name”;
$mail->AddReplyTo(”meine@emailadresse.de”,”Mein Name”);

/// EMPFÄNGER EINTRAGEN ////
$teile = explode(”;”, $empf);
reset ($teile);
while (list ($key, $val) = each ($teile)) {
$mail->AddBCC($val);
}

/// ANHÄNGE ///
$teile = explode(”;”, $anhang);
reset ($teile);
while (list ($key, $val) = each ($teile)) {
$dateiname = explode(”/”, $val);
$dateiname = array_pop($dateiname);
/// Anhängen
$mail->AddAttachment($val, $dateiname);
}

$mail->IsHTML(true); // send as HTML

$mail->Subject = $betreff;
$mail->Body = $mailtext;
$mail->AltBody = $mailtext;

if(!$mail->Send()) { exit; }

$mail->ClearAddresses();
$mail->ClearAttachments();
}[/PHP]

Geschrieben

Wenn ich jetzt die php.ini Datei so abgeändert habe, das dort fogendes steht:

[mail function]

; For Win32 only.

SMTP = smtp.web.de

smtp_port = 25
Wie kann ich jetzt darauf zugreifen? Muss ich den $sender = NAME@web.de wählen, das reicht/klappt nicht? Muss ich folgendes noch abändern:
; For Win32 only.

;sendmail_from = me@example.com

Mit der Funktion mail() komm ich doch nicht weiter oder?

Sollte wohl besser auf die Klasse PHPMailer umsteigen oder was meint Ihr?

Geschrieben

Bei Web.de könnte das Problem sein, dass der Server Authentifizierung vorm Mail-Versand verlangt.

Da ich web.de schon Ewigkeiten nicht mehr genutzt habe, weiss ich rgad nciht mehr, mit welchen Daten man sich da nochmal einloggen muss. Sollten aber die gleichen sein, mittels denen man auch per Outlook Mails darüber verschicken kann.

Wenn der PHPMailer bei dir funktioniert, spricht ja nichts dagegen, den nicht zu verwenden. Zumindest falls bei dir nichts dagegen spricht.

Geschrieben

Die Funktion klappt auch nicht ohne weiteres.

Zudem möchte ich es lieber selbst verstehen als einfach ein fertiges Script zu nehmen.

Dachte der Mailversand ist wesentlich einfacher...

Hat jemand eine Tipp was ich ändern sollte. Damit es einfach klappt?

Geschrieben

wenn du smtp.web.de als SMTP verwendest, solltest du vielleicht mal feststellen, ob der mailserver deine mails überhaupt annimmt.

du kannst das ganz leicht, indem du dich z.b. mittels telnet auf port 25 des MTA hängst und das mail direkt als SMTP-session übergibst.

du wirst dann ja schnell feststellen, ob der SMTP dich vorher authentifiziert haben will, denn die meisten mailserver nehmen mail nicht von jedem client an.

GMX verlangt beispielsweise POP-before-SMTP, bei WEb.de könnte das ähnlich sein.

s'Amstel

Geschrieben

telnet, wie muss ich das den testen beim eigenen localhost?

Da erhalte ich:

220 localhost ESMTP server ready.

zu smtp.web.de oder WEB.DE erhalte ich:

telnet smtp.web.de 25

Verbindungsaufbau zu smtp.web.de...Es konnte keine Verbindung mit dem Host hergestellt werden, auf Port 25: Verbinden fehlgeschlagen

Das heißt jetzt was? Es muss ja auch nicht web.de sein, hab mir eh gerade nur für den Zweck da gerad ein Acc angelegt!

Geschrieben (bearbeitet)
telnet, wie muss ich das den testen beim eigenen localhost?

in dieser reihenfolge:

HELO, MAIL FROM, RCPT TO, DATA, QUIT

notfalls lies dich mal in RFC 822 (?) ein, da steht, wie SMTP überhaupt funktioniert.

kann ja nicht schaden, die basics zu wissen.

zu smtp.web.de oder WEB.DE erhalte *ich*:

xxx@s2$ telnet smtp.web.de 25

Trying 217.72.192.157...

Connected to smtp.web.de.

Escape character is '^]'.

220 smtp08.web.de ESMTP WEB.DE V4.109#226 Tue, 16 Dec 2008 13:56:57 +0100

geht also. bist du hinter einer firewall?

s'Amstel

Bearbeitet von Amstelchen
Geschrieben

Firewall (ein Linuxsystem ersetzt diese) zusätzlich noch ein Proxyserver. Sitze im Betrieb und wollte nur die Mail funktion testen. Dann kann ich das erstmal vergessen muss ich dann mal vom Server testen?

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...