php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben || php-forumjetzt anmelden
 

PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 01-05-2019, 20:21
dermilco
 Registrierter Benutzer
Links : Onlinestatus : dermilco ist offline
Registriert seit: May 2019
Beiträge: 7
dermilco befindet sich auf einem aufstrebenden Ast
Standard Mail-Funktion

Hallo Leute.
Seit Wochen versuche ich das Problem bei einem Kontaktformular zu finden.
Das hab ich mal für PHP5 geschrieben und da hat es problemlos funktioniert.
Jetzt ist der Server auf PHP7.2 umgestellt und nun kommen keine Mails mehr an.

Heute hab ich den ganzen Code aufs Minimum reduziert und das Problem gefunden, kann es mir nur nicht erklären. Das Problem scheint am from-Teil zu liegen, den ich jetzt auch schon in die Funktion direkt geschrieben habe, um einen Fehler im Array auszuschließen. Aber so kommt keine Mail an...

Hier mein Code:
PHP-Code:
<?php
$empfaenger 
"meinemail@web.de";
$betreff "Die Mail-Funktion";
$text "Hier steht mein E-Mail-Text";
 
//mail($empfaenger, $betreff, $text, $from);
mail($empfaenger$betreff$text"From: Absender <meinemail@web.de>");
 
?>
Wenn ich jedoch in der Mail-Funktion den Absender gegen irgendein Wort austausche, kommt die Mail sofort an...

PHP-Code:
mail($empfaenger$betreff$text"From: Absender <unsinn>"); 
Jedoch mit fehlerhaftem Absender:



Hat irgendjemand ne Idee, was da falsch läuft??
Bin verzweifelt..
Miniaturansicht angehängter Grafiken
Mail-Funktion-unbenannt.png  
Mit Zitat antworten
  #2 (permalink)  
Alt 02-05-2019, 07:48
bandit600
 Registrierter Benutzer
Links : Onlinestatus : bandit600 ist offline
Registriert seit: Jan 2010
Beiträge: 192
bandit600 befindet sich auf einem aufstrebenden Ast
Standard

Mit der PHP-Funktion mail() kann man E-Mails versenden. Aber damit hat der Entwickler oft viele Sorgen. Für den korrekten E-Mail Versand sind verschiedene Mail-Header notwendig. Ohne die richtigen Header bekommen viele Mail-Clients Probleme bei der Anzeige oder empfangen diese erst gar nicht. Allerdings ist es aufgrund der Komplexität sehr aufwändig, alle sich damit befassenden RFC-Dokumente selbst durchzuarbeiten und anzuwenden. Stattdessen sollte man Mailerklassen verwenden, die diese Header korrekt einbinden.


Tipp: phpMailer
Mit Zitat antworten
  #3 (permalink)  
Alt 02-05-2019, 13:25
SysOp
 Registrierter Benutzer
Links : Onlinestatus : SysOp ist offline
Registriert seit: May 2005
Beiträge: 81
SysOp befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von bandit600 Beitrag anzeigen
Mit der PHP-Funktion mail() kann man E-Mails versenden. Aber damit hat der Entwickler oft viele Sorgen. Für den korrekten E-Mail Versand sind verschiedene Mail-Header notwendig. Ohne die richtigen Header bekommen viele Mail-Clients Probleme bei der Anzeige oder empfangen diese erst gar nicht. Allerdings ist es aufgrund der Komplexität sehr aufwändig, alle sich damit befassenden RFC-Dokumente selbst durchzuarbeiten und anzuwenden. Stattdessen sollte man Mailerklassen verwenden, die diese Header korrekt einbinden.


Tipp: phpMailer
Was zur Beantwortung der Frage genau Null beiträgt.

Zitat:
Zitat von bandit600 Beitrag anzeigen
....Stattdessen sollte man Mailerklassen verwenden, die diese Header korrekt einbinden.
Das sehe ich übrigens komplett anders, der geringste Fehler in der Klasse und hunderttausende Webseiten sind Missbrauch gefährdet! Ebenso könnte man dafür plädieren nur Wordpress einzusetzen, weil die ohnedies viel besser PHP coden können. Und so schwer ist die korrekte Einbindung von mail() nun auch wieder nicht. PHP bietet ja Funktionen wie z.B. filter_var() um die Einhaltung der Standards zu prüfen. Im Übrigen nutzen php-mailer letztendlich selber meist mail()

Auf Sonderzeichen checken und eventuel das probieren:

PHP-Code:
$header = array(
    
'From' => 'bla@example.com',
    
'Reply-To' => 'foo@example.com',
    
'X-Mailer' => 'PHP/' phpversion()
);

mail($empfaenger$betreff$nachricht$header); 

Geändert von SysOp (02-05-2019 um 13:44 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 02-05-2019, 14:16
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.875
h3ll wird schon bald berühmt werden
Standard

Die Verwendung von mail() ist eben weitaus komplexer und fehleranfälliger, und schon gar nichts für Anfänger sondern nur für Leute, die genau wissen was sie tun.

Davon abgesehen, wenn man nach deiner Logik geht, dürfte man auch kein PHP verwenden. Denn der geringste Fehler in PHP könnte hunderttausende Webseiten gefährden.

Geändert von h3ll (02-05-2019 um 14:20 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 02-05-2019, 19:35
dermilco
 Registrierter Benutzer
Links : Onlinestatus : dermilco ist offline
Registriert seit: May 2019
Beiträge: 7
dermilco befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von SysOp Beitrag anzeigen
Auf Sonderzeichen checken und eventuel das probieren:

PHP-Code:
<?php
$empfaenger 
"meinemail@web.de";
$betreff "Die Mail-Funktion";
$text "Hier steht mein E-Mail-Text";
$header = array(
    
'From' => 'meinemail@web.de',
    
'Reply-To' => 'meinemail@web.de',
    
'X-Mailer' => 'PHP/' phpversion()
);

mail($empfaenger$betreff$nachricht$header)

?>

Grade probiert, jedoch kommt im Postfach nichts an... :-(
Ich werd mich dann wohl doch mal mit dem phpmailer befassen müssen..


Danke trotzdem...
Mit Zitat antworten
  #6 (permalink)  
Alt 15-06-2019, 11:21
dermilco
 Registrierter Benutzer
Links : Onlinestatus : dermilco ist offline
Registriert seit: May 2019
Beiträge: 7
dermilco befindet sich auf einem aufstrebenden Ast
Standard

Hey Leute,

ich bin mit meinem Problem noch nicht weiter. Ich habe es mit Swifmailer und phpmailer probiert. Bei beiden passiert einfach gar nix. Ich bekomme bei beiden Varianten ein leeres Browserfenster und keine Mails.

Habt ihr nen Tipp was ich falsch mache??
Anbei noch die jeweilige Verzeichnisstruktur.


Swiftmailer-Code:
PHP-Code:
<?php
// SwiftMailer Autoloader einbinden
require_once 'lib/swift_required.php';

// Das Transport-Objekt
$oTransport Swift_SmtpTransport::newInstance'smtp.web.de'587'tls' );
$oTransport->setUsername'meinemail@web.de' );
$oTransport->setPassword'passwort' );

// Das Message-Objekt
$oMessage Swift_Message::newInstance('Web Lead');
$oMessage->setFrom'meinemail@web.de' );
$oMessage->setTo'meinemail@web.de''Max Mustermann' );
//$oMessage->setCc( 'maria.mustermann@example.com', 'Maria Mustermann' );
$oMessage->setSubject'PHProcks! Tutorials - less time to learn more' );
$oMessage->setBody'<h1>PHProcks!</h1><h2>Tutorial: HTML E-Mail senden mit SwiftMailer</h2>''text/html' );
$oMessage->addPartstrip_tags($oMessage->getBody()), 'text/plain' );

// Das Mailer-Objekt
$oMailer Swift_Mailer::newInstance$oTransport );

// Versenden der Mail und prüfen, auf Versendet
if ( !$oMailer->send($oMessage) ) {

    echo 
'Something\'s went wrong!';
    exit;

}


echo 
'Yes! First Mail with SwiftMailer sent successfully!'

?>
</div>

PHPmailer-Code:
PHP-Code:
<?php
//use PHPMailer\PHPMailer\PHPMailer;
//use PHPMailer\PHPMailer\Exception;

require 'PHPMailerAutoload.php';
//include_once __DIR__ . 'PHPMailerAutoload.php'; 

$oMailer = new PHPMailer;
$oMailer->CharSet 'UTF-8';


$oMailer->isSMTP();                                // SMTP aktivieren
$oMailer->Host 'smtp.web.de';                    // SMTP-Server 'smtp.example.com'
$oMailer->SMTPAuth true;                        // SMTP Authentifizierung aktivieren
$oMailer->Username 'meinemail@web.de';        // SMTP Benutzer 'phprocks@example.com'
$oMailer->Password 'passwort';                // SMTP Benutzer Passwort
$oMailer->SMTPSecure 'tls';                    // Verbindungssicherheit setzen ( SSL und TLS möglich )
$oMailer->Port 587;                            // Verbindungsport festlegen
$oMailer->CharSet "UTF-8";                    // Kodierung festlegen

$oMailer->setFrom('meinemail@web.de''Max Mustermann');            // Absender Alias setzen
$oMailer->addReplyTo'meinemail@web.de''Max Mustermann' ); // Empfänger Adresse und Alias hinzufügen

$oMailer->addAdress'meinemail@web.de'); // Empfänger Adresse und Alias hinzufügen
$oMailer->isHTMLtrue );                                                                    // HTML aktivieren

$oMailer->Subject 'PHProcks! Tutorials - less time to learn more';                        // Betreff
$oMailer->Body '<h1>PHProcks!</h1><h2>Tutorial: HTML E-Mail senden mit PHPMailer</h2>';    // Der Nachrichteninhalt als HTML
$oMailer->AltBody strip_tags$oMailer->Body );                                             // Alternaiver Nachrichteninhalt für Clients, die kein HTML darstellen


if ( !$oMailer->send() ) {
    echo 
'Die Mail konnte nicht verschickt werden.';
} else {
    echo 
'Die Mail wurde verschickt.';
}
?>
Miniaturansicht angehängter Grafiken
Mail-Funktion-swiftmailer.png   Mail-Funktion-phpmailer.png  
Mit Zitat antworten
  #7 (permalink)  
Alt 15-06-2019, 11:58
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.875
h3ll wird schon bald berühmt werden
Standard

Leeres Browser-Fenster -> ins PHP-Error-Log schauen und die Fehlermeldung lesen.
Mit Zitat antworten
  #8 (permalink)  
Alt 17-06-2019, 19:14
dermilco
 Registrierter Benutzer
Links : Onlinestatus : dermilco ist offline
Registriert seit: May 2019
Beiträge: 7
dermilco befindet sich auf einem aufstrebenden Ast
Standard

is nur leider auch leer...
Miniaturansicht angehängter Grafiken
Mail-Funktion-unbenannt.png  
Mit Zitat antworten
  #9 (permalink)  
Alt 17-06-2019, 20:59
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.875
h3ll wird schon bald berühmt werden
Standard

Schaust du da ins richtige Error Log? Wie gesagt, wenns einen Fehler gibt, gibts auch eine Fehlermeldung. Wenn der Server nicht vernünftig konfiguriert ist und deswegen die Fehler untergehen, versuche einen anderen Server.
Mit Zitat antworten
  #10 (permalink)  
Alt 18-06-2019, 10:45
SysOp
 Registrierter Benutzer
Links : Onlinestatus : SysOp ist offline
Registriert seit: May 2005
Beiträge: 81
SysOp befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dermilco Beitrag anzeigen
Grade probiert, jedoch kommt im Postfach nichts an... :-(
Ich werd mich dann wohl doch mal mit dem phpmailer befassen müssen..

Danke trotzdem...
Wenn das nicht einmal funktioniert, hat es etwas anderes.
Mit Zitat antworten
  #11 (permalink)  
Alt 27-08-2019, 11:24
dermilco
 Registrierter Benutzer
Links : Onlinestatus : dermilco ist offline
Registriert seit: May 2019
Beiträge: 7
dermilco befindet sich auf einem aufstrebenden Ast
Standard

Hi Leute,

ich bin mit meiner Mail-Funktion leider immer noch nicht weiter und könnte verzweifeln. Ich habe nun den PHPMailer von vorn aufgesetzt und mich (denke ich) streng an die Beschreibung gehalten. Dennoch klappt es nicht..
Im Error-Log steht nach wie vor kein Fehler drin...

Ich hoste auf strato.de und will zu Testzwecken aber Mails über meinen web.de-Freemail-Account versenden.


Könnt ihr bitte mal auf den Code und die Ordnerstruktur schauen wegen der Pfade? Kann das so überhaupt klappen?
Hier der Code der Datei a-test.php im Root-Verzeichnis:
PHP-Code:
<?php 
use PHPMailerPHPMailerPHPMailer;
use 
PHPMailerPHPMailerException;

require 
__DIR__ '/PHPMailer/src/Exception.php';
require 
__DIR__ '/PHPMailer/src/PHPMailer.php';
require 
__DIR__ '/PHPMailer/src/SMTP.php'
$oMailer = new PHPMailer;
$oMailer->CharSet 'UTF-8'



// SMTP aktivieren
$oMailer->isSMTP();

// SMTP-Server
$oMailer->Host 'smtp.web.de';

// SMTP Authentifizierung aktivieren
$oMailer->SMTPAuth true;

// SMTP Benutzer
$oMailer->Username 'nutzer@web.de';

// SMTP Benutzer Passwort
$oMailer->Password 'passwort';

// Verbindungssicherheit setzen ( SSL und TLS möglich )
$oMailer->SMTPSecure 'ssl';

// Verbindungsport festlegen
$oMailer->Port 587



// Absender Adresse setzen
$oMailer->From 'nutzer@web.de';

// Absender Alias setzen
$oMailer->FromName 'PHProcks';

// Empfänger Adresse und Alias hinzufügen
//$oMailer->addAddress( 'max.mustermann@example.com', 'Max Mustermann' ); 



// HTML aktivieren
$oMailer->isHTMLtrue );

// Betreff
$oMailer->Subject 'PHProcks! Tutorials - less time to learn more';

// Der Nachrichteninhalt als HTML
$oMailer->Body '<h1>PHProcks!</h1><h2>Tutorial: HTML E-Mail senden mit PHPMailer</h2>';

// Alternaiver Nachrichteninhalt für Clients, die kein HTML darstellen
$oMailer->AltBody strip_tags$oMailer->Body ); 



if ( !
$oMailer->send() ) {
    echo 
'Something\'s went so wrong!';
    exit;
} else {
      echo 
'Yes! First Mail with PHPMailer sent successfully!'
}
echo 
'test';


?>
ok1
Miniaturansicht angehängter Grafiken
Mail-Funktion-unbenannt.png  
Mit Zitat antworten
  #12 (permalink)  
Alt 27-08-2019, 14:37
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.875
h3ll wird schon bald berühmt werden
Standard

Und was ist das Fehlerbild?
Mit Zitat antworten
  #13 (permalink)  
Alt 27-08-2019, 15:18
dermilco
 Registrierter Benutzer
Links : Onlinestatus : dermilco ist offline
Registriert seit: May 2019
Beiträge: 7
dermilco befindet sich auf einem aufstrebenden Ast
Standard

na eben nix...


Der Browser zeigt beim Aufruf der Seite ein leeres Fenster an.
Es kommt keine Mail im Postfach an.
Und im Fehler-Logfile steht auch gar nichts drin.
Mit Zitat antworten
  #14 (permalink)  
Alt 27-08-2019, 17:00
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.875
h3ll wird schon bald berühmt werden
Standard

Dann ist der Server falsch konfiguriert, wenn keine Fehler geloggt werden. Wende dich an den Serverbetreiber.

Davon abgesehen, läuft der Code auf deinem Entwicklungsserver?
Mit Zitat antworten
  #15 (permalink)  
Alt 28-08-2019, 10:25
dermilco
 Registrierter Benutzer
Links : Onlinestatus : dermilco ist offline
Registriert seit: May 2019
Beiträge: 7
dermilco befindet sich auf einem aufstrebenden Ast
Standard

Doch, wenn ich bewusst Fehler programmiere, werden dort auch Fehler ausgegeben... Aber eben nicht mit diesem Code, den ich hier zuletzt gepostet habe..


Würdest du den Code mal bei dir ausprobieren?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Funktion] probleme mit mail() funktion xamplite / windows Roboson Fragen zu Installation & Konfiguration (LAMP, WAMP & Co.) 13 16-01-2006 16:49
Funktion mail() Mr Agent X PHP Developer Forum 8 30-11-2003 14:12
mail funktion thargor1 PHP Developer Forum 4 21-03-2003 16:14
E-Mail wird mit der mail()-Funktion nicht gesendet acubra PHP Developer Forum 0 25-10-2002 21:19
Mail-funktion und Antwort falls mail unzustellbar Thommy PHP Developer Forum 11 12-11-2001 18:05

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Warum Texterstellung mit künstlicher Intelligenz richtig gut ist
Warum Texterstellung mit künstlicher Intelligenz richtig gut istKünstliche Intelligenz ist dabei, die Welt zu erobern. Die größten Unternehmen entwickeln Systeme, die einen Text für Sie schreiben können. Und sie machen das sehr gut.

05.01.2022 | Berni

Vorteile eines flexiblen ERP Systems
Vorteile eines flexiblen ERP SystemsEin flexibles ERP System bietet in allen Unternehmensbereichen die Grundlage für eine erfolgreiche Verwaltung, Organisation und Planung aller Prozesse.

01.12.2021 | Berni


 

Aktuelle PHP Scripte

Homepagetools 2022

Kostenloses Gästebuch und Homepagetools für die eigene Homepage. Bei GuxDu kann man sich kostenlos die Websitetools auf die vorhandene Website einbauen. Zudem kann man bei GuxDU auch eine eigene Homepage mit 3D Effekten erstellen. GuxDu ist kostenlos.

29.04.2022 freepler | Kategorie: PHP/ Gaestebuch
SF-Shopsystem V1.0

Hier haben wir ein einzigartiges Shopsystem in PHP. Die Anzahl der Artikel ist unbegrenzt, einfach zu bedienen und erklärt sich. Ausführliche Beschreibung weiter unten.

28.04.2022 Speedcrawler | Kategorie: PHP/ Shops
Anzeigen Markt mit PayPal Bezahl System

Anzeigen Markt Script mit PayPal Bezahl System Der Benutzer hat die Möglichkeit sofort nach Bezahlung mit PayPal seine Anzeigen zu schalten, je nach seinem Guthaben.

27.04.2022 Webace_de | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:21 Uhr.