mail_cc bei PHP-Mailer funktioniert nicht
Re: mail_cc bei PHP-Mailer funktioniert nicht
Danke,
aber es tut mir leid, würde ich gerne machen, wenn ich wüsste, wo das -f im Code hinkommt.
aber es tut mir leid, würde ich gerne machen, wenn ich wüsste, wo das -f im Code hinkommt.
Re: mail_cc bei PHP-Mailer funktioniert nicht
Wie im Beispiel#4.
Re: mail_cc bei PHP-Mailer funktioniert nicht
Hab mir mal erlaubt, dein Problem zu lösen.
Hier mal das überarbeitete Formular:
Hab dir das etwas umgeschrieben. Wenn du jetzt oben die empfänger und cc adresse einfügst dann sollte das skript auch schicken. Am ende hab ich noch ne ausgabe für evtl. fehlermeldung gemacht.
SChaus dir an wenn fragen hast dann stell ruhig
Im übrigen hab ich das bei al inkl getestet und da funktioniert das so.
Hier mal das überarbeitete Formular:
Code: Alles auswählen
<?php
//send_email.php
$email_from = "absender@domain.de"; //Absender falls keiner angegeben wurde
$sendermail_antwort = true; //E-Mail Adresse des Besuchers als Absender. false= Nein ; true = Ja
$name_von_emailfeld = "Email"; //Feld in der die Absenderadresse steht
$empfaenger = "hier die erste empfänger email rein"; //Empfänger-Adresse
$mail_cc = "hier die mail die als cc dienen soll"; //CC-Adresse, diese E-Mail-Adresse bekommt einer weitere Kopie
$betreff = "Neue Kontaktanfrage"; //Betreff der Email
/*
* Die beiden URls erschliesen sich mir nicht hab dir am ende ne fehlerausgabe eingebunden
*/
//$url_ok = "http://www.domain.de/ok.php"; //Zielseite, wenn E-Mail erfolgreich versendet wurde
//$url_fehler = "http://www.domain.de/fehler.php"; //Zielseite, wenn E-Mail nicht gesendet werden konnte
//Diese Felder werden nicht in der Mail stehen
$ignore_fields = ['Button'];
//Datum, wann die Mail erstellt wurde
$name_tag = ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"];
$num_tag = date("w");
$tag = $name_tag[$num_tag];
$jahr = date("Y");
$n = date("d");
$monat = date("m");
$time = date("H:i");
//Erste Zeile unserer Email
$msg = ":: Gesendet am $tag, den $n.$monat.$jahr - $time Uhr ::\n:: Die Zahlungs-Infos kommen innerhalb von 24 Stunden per PN aus dem Chiforum! ::\n\n";
//Hier werden alle Eingabefelder abgefragt
foreach($_POST as $name => $value)
{
if (in_array($name, $ignore_fields))
{
continue; //Ignore Felder wird nicht in die Mail eingefügt
}
$msg .= "::: $name :::\n$value\n\n";
}
//E-Mail Adresse des Besuchers als Absender
if ($sendermail_antwort and isset($_POST[$name_von_emailfeld]) and filter_var($_POST[$name_von_emailfeld], FILTER_VALIDATE_EMAIL))
{
$email_from = $_POST[$name_von_emailfeld];
}
$header .="From: $email_from";
//Email als UTF-8 senden
$header .= "\nContent-type: text/plain; charset=utf-8";
//Hier erzeuge ich ein leeres Array was wir mit eventuellen fehlermeldungen füllen können
$error = [];
//Für den Normalen versand ohne mail haben wir nachfolgende abfrage allerdinsg prüfen wir vorher ob die Empfänger Mail korrekt ist also ob diese Valide ist
if (filter_var($empfaenger, FILTER_VALIDATE_EMAIL))
{
//Die pürfung der empfänger mail ist positiv dann wird nachfolgend die mail an besagte email gesendet.
mail($empfaenger, $betreff, $msg, $header);
}
else
{
//Ist die mail Adresse nicht korrekt eingeben also entspricht sie nicht dem email format z.B. das @ wurde vergessen oder der punkt was auch immer
//wird eine Fehlermeldung in das vorgereitete error array geschrieben.
$error[] = 'empfängermail ist keine gültige Email adresse';
}
//Hier prüfen wir ob die Variable $mail_cc einen eintrag erhält. Wenn nicht wird cc ignoriert
if (!empty($mail_cc))
{
//Auch hier prüfen wir wieder ob die Mail korrekt ist
if (filter_var($mail_cc, FILTER_VALIDATE_EMAIL))
{
//Ist die Mail korrekt wird diese gesendet
mail($mail_cc, $betreff, $msg, $header);
}
else
{
//Ist die cc mail nicht korrekt wird eine fehlermeldung in das error Array hinzugefügt.
$error[] = 'Cc Email ist keine Gültige Email';
}
}
//Hier prüfen wir das error array ob das leer ist oder nicht
if(empty($error))
{
//Hier ist das Error array leer und man kann hier eine erfolgsmeldung ausgeben oder was auch immer
echo 'ok';
//header("Location: ".$url_ok); //Mail wurde gesendet
//exit();
}
else if (!empty($error))
{
//Hier haben wir den fall das eine oder mehrere Meldungen in dem Error Array enthalten sind. Diese werden hier ausgegeben.
echo implode('<br>', $error);
//header("Location: ".$url_fehler); //Fehler beim Senden
//exit();
}
Hab dir das etwas umgeschrieben. Wenn du jetzt oben die empfänger und cc adresse einfügst dann sollte das skript auch schicken. Am ende hab ich noch ne ausgabe für evtl. fehlermeldung gemacht.
SChaus dir an wenn fragen hast dann stell ruhig
Im übrigen hab ich das bei al inkl getestet und da funktioniert das so.
Re: mail_cc bei PHP-Mailer funktioniert nicht
Hallo Thorsten,
danke für die ganze Arbeit und ich habe den Code getestet, funktioniert bei mir (All-Inkl) leider nicht.
Es wird keine CC Mail geschickt. Ansonsten funktioniert alles wie gehabt.
Gestern habe ich auch noch getestet, ich habe nur die Datei mit dem PHP-Code bei STRATO hoch geladen und im Formular bei All-Inkl die Datei bei STRATO verlinkt.
Dann funktioniert alles, auch die CC Mail!
Ich habe dann All-Inkl angeschrieben und von dem Fehler berichtet.
Leider ist es so, dass ich die Antwort nicht verstehe und nicht weiß, was ich ändern soll.
Hier die Antwort von All-Inkl:
(All-Inkl hatte ich auch den kompletten PHP-Code geschickt.)
Gruß Rolf (eumelchen)
danke für die ganze Arbeit und ich habe den Code getestet, funktioniert bei mir (All-Inkl) leider nicht.
Es wird keine CC Mail geschickt. Ansonsten funktioniert alles wie gehabt.
Gestern habe ich auch noch getestet, ich habe nur die Datei mit dem PHP-Code bei STRATO hoch geladen und im Formular bei All-Inkl die Datei bei STRATO verlinkt.
Dann funktioniert alles, auch die CC Mail!
Ich habe dann All-Inkl angeschrieben und von dem Fehler berichtet.
Leider ist es so, dass ich die Antwort nicht verstehe und nicht weiß, was ich ändern soll.
Hier die Antwort von All-Inkl:
(All-Inkl hatte ich auch den kompletten PHP-Code geschickt.)
Ich habe keine Ahnung was ich ändern muss.Auffällig ist:
From ≠ ist es die eigene Domain welche auf den Server zeigt? Ansonsten Probleme mit SPF/DMARC
mail() ohne 5. Parameter sollte der Envelope-From per -f auf eine reale Absenderadresse ihrer Domain gesetzt werden.
Header-Zeilen mit \n statt \r\n
RFC-konform sind \r\n. Einige MTAs sind pingelig.
Cc: $_POST['Email'] ohne Sanitizing kann geblockt werden (Header-Injection-Schutz).
Außerdem triggert es wieder DMARC/SPF-Probleme, weil Sie im gleichen Zug an den Nutzer „weiterleiten“.
Besser: Reply-To statt From
Die Besucher-Adresse gehört in Reply-To, nicht in From.
Alternativ und von uns absolut empfohlen SMTP mit Auth über ihr existierendes Postfach
Besucher-CC als separate Mail (eigener Versand), nicht per Header-CC.
Gruß Rolf (eumelchen)
Re: mail_cc bei PHP-Mailer funktioniert nicht
Schau dir mal den code an den ich dir geschickt habe. Der Funktioniert auch bei all-inkl.com.
Re: mail_cc bei PHP-Mailer funktioniert nicht
Hallo Thorsten,
es tut mir wirklich sehr leid, aber der Code funktioniert bei mir (und All-Inkl) nicht wie gewünscht.
Es wird nach wie vor keine Mail an CC geschickt.
Ich habe es versucht mit und auch mit
Beide Versionen haben nicht funktioniert!
Mein Test mit PHP-Script bei STRATO und den Rest bei All-Inkl funktioniert weiterhin einwandfrei.
Lieber wäre mir aber eine Lösung, bei der alles bei All-Inkl ist. So funktioniert es aber erst einmal.
Vielleicht hat ja noch jemand eine Idee.
Gruß Rolf (eumelchen)
es tut mir wirklich sehr leid, aber der Code funktioniert bei mir (und All-Inkl) nicht wie gewünscht.
Es wird nach wie vor keine Mail an CC geschickt.
Ich habe es versucht mit
Code: Alles auswählen
$mail_cc = "$_POST[$name_von_emailfeld]";
Code: Alles auswählen
$mail_cc = "meinemail@meinehomepage.de"; //Natürlich mit einer funktionierenden Mailadresse
Mein Test mit PHP-Script bei STRATO und den Rest bei All-Inkl funktioniert weiterhin einwandfrei.
Lieber wäre mir aber eine Lösung, bei der alles bei All-Inkl ist. So funktioniert es aber erst einmal.
Vielleicht hat ja noch jemand eine Idee.
Gruß Rolf (eumelchen)
Re: mail_cc bei PHP-Mailer funktioniert nicht
Sag ma eumelchen hast du überhaupt gelesen das ich dir einfunktionsfähiges skript geschrieben habe das funktioniert. Auch mit all inkl.com
Re: mail_cc bei PHP-Mailer funktioniert nicht
Ja, habe ich gelesen und das Skript auch ausprobiert!
Wie schon geschrieben, außer Mail CC hat alles funktioniert. Leider.
Wie schon geschrieben, außer Mail CC hat alles funktioniert. Leider.
Re: mail_cc bei PHP-Mailer funktioniert nicht
Ok. Also wenn du das Skript hier:
viewtopic.php?p=1432413#p143241
probiert hast und bei deiner cc Adresse keine Mail ankommt, hast du definitiv ein anderes Problem
Also ich bin selber beim Hoster all-inkl.com und da funktioniert das Skript so wie ich es dir gepostet habe.
Pass auf, wir machen mal mit dem skript von mir ein paar tests.
Du übermittelst ja irgendwoher die adresen in das skript. schreibe zum test mal die adressen fix in das skript.
Also hier diese werte:
Und lasse das skript dann mal durchlaufen.
Weil wenn mein skript bei dir nicht funktioniert mit der cc adresse kann das eigentlich nur sein das bei der übermittlung der cc adresse in dein skript was schief läuft.
Du hattestd as Ursprünglich so:
Das habe ich ja kommplet entfernt und dies durch das hier ersetzt:
Und dort steht der cc ja an der stelle drin wo bei dem anderen normalen der normale empfänger steht.
Und das hier wird ja auch nur ausgefüllt wenn die variable $mail_cc nicht leer ist. ALso liegt meine Vermutung nahe das dort evtl. anzusetzen ist.
Füge mal testweise vor:
Das hier ein:
Und lass dein skript ansonsten unverändert. Lass das durchlaufen und mach von der fehlermeldung die im kopfbereich erscheint mal ein screenshot.
Wenn deine cc mail im forumalr korrekt vorhanden ist sollte in der meldung dann auch diese stehen eigentlich.
viewtopic.php?p=1432413#p143241
probiert hast und bei deiner cc Adresse keine Mail ankommt, hast du definitiv ein anderes Problem
Also ich bin selber beim Hoster all-inkl.com und da funktioniert das Skript so wie ich es dir gepostet habe.
Pass auf, wir machen mal mit dem skript von mir ein paar tests.
Du übermittelst ja irgendwoher die adresen in das skript. schreibe zum test mal die adressen fix in das skript.
Also hier diese werte:
Code: Alles auswählen
$empfaenger = "hier die erste empfänger email rein"; //Empfänger-Adresse
$mail_cc = "hier die mail die als cc dienen soll"; //CC-Adresse, diese E-Mail-Adresse bekommt einer weitere Kopie
$betreff = "Neue Kontaktanfrage"; //Betreff der Email
Weil wenn mein skript bei dir nicht funktioniert mit der cc adresse kann das eigentlich nur sein das bei der übermittlung der cc adresse in dein skript was schief läuft.
Du hattestd as Ursprünglich so:
Code: Alles auswählen
if (!empty($mail_cc)) {
$header .= "\n";
$header .= "Cc: $mail_cc";
}
Das habe ich ja kommplet entfernt und dies durch das hier ersetzt:
Code: Alles auswählen
//Hier prüfen wir ob die Variable $mail_cc einen eintrag erhält. Wenn nicht wird cc ignoriert
if (!empty($mail_cc))
{
//Auch hier prüfen wir wieder ob die Mail korrekt ist
if (filter_var($mail_cc, FILTER_VALIDATE_EMAIL))
{
//Ist die Mail korrekt wird diese gesendet
mail($mail_cc, $betreff, $msg, $header);
}
else
{
//Ist die cc mail nicht korrekt wird eine fehlermeldung in das error Array hinzugefügt.
$error[] = 'Cc Email ist keine Gültige Email';
}
}
Und das hier wird ja auch nur ausgefüllt wenn die variable $mail_cc nicht leer ist. ALso liegt meine Vermutung nahe das dort evtl. anzusetzen ist.
Füge mal testweise vor:
Code: Alles auswählen
//Hier prüfen wir ob die Variable $mail_cc einen eintrag erhält. Wenn nicht wird cc ignoriert
Code: Alles auswählen
var_dump($mail_cc);
Wenn deine cc mail im forumalr korrekt vorhanden ist sollte in der meldung dann auch diese stehen eigentlich.