php-resource



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

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


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, 21: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, 08: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, 14: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 14:44 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 02-05-2019, 15:16
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.668
h3ll befindet sich auf einem aufstrebenden Ast
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 15:20 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 02-05-2019, 20: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, 12: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, 12:58
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.668
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Leeres Browser-Fenster -> ins PHP-Error-Log schauen und die Fehlermeldung lesen.
Mit Zitat antworten
  #8 (permalink)  
Alt 17-06-2019, 20: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, 21:59
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.668
h3ll befindet sich auf einem aufstrebenden Ast
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, 11: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, 12: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, 15:37
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.668
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Und was ist das Fehlerbild?
Mit Zitat antworten
  #13 (permalink)  
Alt 27-08-2019, 16: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, 18:00
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.668
h3ll befindet sich auf einem aufstrebenden Ast
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, 11: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 17:49
Funktion mail() Mr Agent X PHP Developer Forum 8 30-11-2003 15:12
mail funktion thargor1 PHP Developer Forum 4 21-03-2003 17:14
E-Mail wird mit der mail()-Funktion nicht gesendet acubra PHP Developer Forum 0 25-10-2002 22:19
Mail-funktion und Antwort falls mail unzustellbar Thommy PHP Developer Forum 11 12-11-2001 19: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

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

jqPlot jQuery Plotting Plugin ansehen jqPlot jQuery Plotting Plugin

jqPlot ist ein plotting und charting plugin für das jQuery Javascript framework

06.11.2019 Berni | Kategorie: AJAX/ Framework
WYSIWYG Editor

WYSIWYG Editor zum Einbinden in PHP Scripte.

21.10.2019 Stephan_1972 | Kategorie: PHP/ WYSIWYG
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

10.10.2019 Stephan_1972 | Kategorie: PHP/ Bilder
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:43 Uhr.