• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

E-Mail mit PHP verschicken (Landen im Spamordner)

domitz

Neues Mitglied
Hallo, ich brauche eure Hilfe.

Ich möchte E-Mails mit PHP verschicken, welche einen Link enthalten.
Nutze dazu derzeit noch die mail Funktion, die aber wohl dazu nicht mehr sonderlich geeignet sein soll.

Bin durch langes Suchen nun auf folgendes gestoßen:

Mail() ist tot, es lebe mail()

Doch leider komme ich mit diesen ganzen Downloads nicht klar, weil ich dazu keinerlei Anleitungen finde.
Hat vielleicht einer einen Tipp bzw kann mir erklären wie ich diese Sachen genau anwenden muss?
Also wenn ich die Variablen
$mailto
$mailfrom
$subjekt
$message
habe?

Ich komme da leider auf keinen Grünen Zweig und würde mich über Hilfe (für Anfänger) freuen.

LG Dominik
 
Werbung:
Von den Downloads dort musst Du nur einen nehmen. Ich würde dir phpmailer empfehlen, für den Anfang reicht der völlig. Und wie man dort den Einbau tätigt wird weiter unten unter weiterführenden Links beschrieben. Dort handelt es sich auch um eine HTML-Mail:
Html-E-Mail über SMTP via phpmailer 5.0 versenden - Codeschnipsel

Tipp: Für einen Link muss man keine HTML-Mail schicken. Die meisten E-Mail-Clients wandeln mit http beginnende Zeichenfolgen schon von selbst in Links zum Anklicken um.
 
Werbung:
Joa da steht Mail() ist tot und mail() gibt es nun anders formuliert.
Also das, die mail() funktion komplett abgeschafft wird bezweifel ich hier sehr, da viele Webapplikations darauf basieren.

Wie ich geschreiben habe... so würde ich das machen wie ganz oben steht, es lebe mail()....

Mail() habe ich auch nie benutzt habe schon immer mail klein geschrieben.
 
@xXxPeterPanxXx: nee hat er nicht, keine ahnung ob er beiträge sammelt.

@agund: mail ist tot! keine frage. Höchsten mal als test funktion aber nicht zum aktiven und sicheren einsatz.

@domitz: das phpmailer ist eigentlich das einfachste um mails damit zu erstellen, selbst mit bilder oder anhänge ist recht einfach wenn einmal die grundeinstellungen
gemacht hast.
hier gibts das aktuelle (nimm das zip ): phpmailer - PHPMailer is a Full Featured Email Transfer Class for PHP - Google Project Hosting
da gibts dann "examples" mit vielen beispielen. SMTP ist das Zauberwort gegen SPAM.

Cheffchen
 
Werbung:
Jeder nimmt das was er wohl mag... aber wenn ich mit den Quellcode anschaue von phpmailer und sehe " // workaround for IE " dann sagt das schon viel.
Auch das es JS ist würde mich mehr als stören... sobald jemand JS deaktiviert geht garnichts mehr... PHP: mail - Manual hier ich nichts davon geschrieben das mail() abgeschaft wird, und wenn Ihr euch da mal umschaut, seht Ihr, dass Funktionen wie eregi Jahre vorher angekündigt werden bevor diese verschwinden.

Sends email via sendmail, PHP mail(), QMail, or directly with SMTP.

Das macht ja sinn.... in deinem Link steht sogar das es mit mail() gemacht wird.... also wenn Ihr das alles verkompiziert haben wollt ok..... dann könnt Ihr das auch über einen Proxy Server senden
 
Hallo agund,

was hat eine php classe wie phpmailer mit JS zu tun und geschweige mit IE?
mail() wird nicht abgeschaft aber die reine funktion darf man einfach nicht ruhigen gewissen nutzen.
Egal.

die grundfrage war ja, wieso seine E-Mails im SPAM landen und wie er das ändern kann.
Lösung ist: eine fertige php classe nehmen damit man das rad nicht zum 1000te mal neu erfindet, was gerade beim mail versand nicht gerade einfach ist wie zb. bilder oder umlaute oder SPAM. Ich habe selber mit mail() jahre lang gearbeitet und mich rumgeärgert wie SPAM und umlaute bis mir einer was vom Pferd erzählt :O), ne von PHPMailer. 4h rumprobiert und sofort alles umgestellt und keine sorge mehr mit mail versand.

Cheffchen
 
Na wenn du mal hineinschaust in die rar datei siehst du das es eine JS Klasse gibt....
Und in deinem Link steht auch das die das nicht anders machen als mit einer mail() funktion.

SPAM hat nichts mit der Funktion des senders zu tun, sondern mit den Filter des Empfänders. Wenn man bei einem Provider ist, werden sogenannte SPAM Filter eingesetzt die nicht anderes ist, als eine ip liste die gleich gefiltert werden. Wenn man einen eigenen Webmail besitzt, hat man keinen SPAM Filter und muss diese selber Konfigurieren. Du musst falls dein Anbieter das zulässt, die IP Adresse des senders aus dem Filter entferenen.

Die Codierung steht immer im Header.... da muss man halt die richtige Codierungsart auswählen... ich nutze immer utf-8, da meine Server auch auf UTF-8 laufen.
 
Werbung:
... Das macht ja sinn.... in deinem Link steht sogar das es mit mail() gemacht wird.... also wenn Ihr das alles verkompiziert haben wollt ok..... dann könnt Ihr das auch über einen Proxy Server senden

Dies hat nix mit "verkomplizieren" zu tun. Das Problem beim Mail-Versandt ist einfach das, das man sich an die sog. RFCs halten sollte, damit eMail beim versenden auch korrekt dem Empfänger zugestellt werden können. Wie mein Vorredner es schon angedeutet hat, spielen hier sehr viele Faktoren eine Rolle. Damit man sich selbst nun nicht mehr diese Arbeit machen muss (RFCs studieren und entsprechend umsetzen) gibt es diese Mailer-Klassen. Diese Klassen kümmern sich komplett um den richtigen Aufbau einer eMail, gerade beim Header. Dies nimmt einem dann eine Menge Arbeit ab.

Ist z.B. der Header einer eMail schon falsch konfiguriert, kann es passieren, dass der empfangende eMail-Server diese Mail gar nicht erst akzeptiert und verwirft (bzw. evtl. sogar eine Fehlermeldung zurückschickt. Hier kommt es aber ganz auf die Konfiguration des Mailservers an.
 
So, habe mir mal das Archiv "PHPMailer_5.2.1.tgz" heruntergeladen und entpackt.

Inhalt des Archives:
.
├── changelog.txt
├── class.phpmailer.php
├── class.pop3.php
├── class.smtp.php
├── docs
├── docs.ini
├── examples
├── extras
├── language
├── LICENSE
├── Liste.txt
├── README
├── test
└── test_script

So, ich sehe da jetzt nirgends eine "JS"-Klasse!

Hier kopierst die Dateien "class.phpmailer.php", "class.smtp.php" in dein Projektverzeichnis, mehr nicht!
Danach musst du die Klasse nur noch einbinden und verwenden. Ein simples Beispiel steht in der README dabei:

(etwas gekürzt)
PHP:
<?phprequire("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();                     // Wir wollen per SMTP versenden
$mail->Host = "mail.domain.tld";             // SMTP-Hos
t$mail->SMTPAuth = true;                     // Wir wollen die SMTP-Authentifizierung
$mail->Username = "jswan";                  // SMTP Username
$mail->Password = "secret";                 // SMTP Passwort
$mail->From = "[email protected]";             // Absender eMail
$mail->FromName = "Mailer";                // Absender Name
$mail->AddAddress("[email protected]", "Josh Adams");    // Empfänger eMail und Name (Name ist optional)
$mail->IsHTML(false);                    // HTML-Mail Ja/Nein (true/false)
$mail->Subject = "Here is the subject";            // Betreff
$mail->Body    = "Mein eMail-Text";            // Der Inhalt/Text der eMail
if(!$mail->Send()){
   echo "eMail konnte nicht versendet werden.<br>";
   echo "Mailer Error: " . $mail->ErrorInfo;
   exit;
}
echo "eMail wurde versendet";?>

So, ich sehe auch hier nirgends die Verwendung von JS! (Keine Ahnung wo du da JS gefunden hast und der Annahme bist, dass dies notwendig ist).
Auch hier noch einmal schön ersichtlich, dass man sich keinerlei Arbeit mit dem korrekte Aufbau des eMail-Headers machen muss, dies wird alles durch die Klasse selber erledigt. Man muss die Klasse nur mit den Daten füttern und gut ist :eek:)
 
Zuletzt bearbeitet:
Werbung:
Oh Mann..
Der grösste Teil der dort angebotenen Klassen verwendet standardmässig mail() für den Mailversand. Die Klassen bieten aber schon Sicherheit und Kompfort in sich und der Anwender muss sich darum nicht mehr kümmern. Probleme sind vom Script her weitestgehend auszuschliessen und von daher sind sie zu empfehlen. Dass schon Attachments verbaut wurden und die korekten Header gesendet werden ist nur einer der Nebeneffekte bei den Mail-Klassen.

Jemand, der den Mailversand selber verstehen will, kommt aber nicht umhin sich irgend wann mal eine eigene Funktion/Klasse zu bauen um zu behirnen, was da eigentlich abgeht. Dazu wird der Betreffende wohl mail() verwenden....

PHP wird noch lange die mail() Funktionalität bieten. Nicht jeder Mail-Server erlaubt einen direkten Zugriff, was für unerfahrene Anweder auch dringend anzuraten ist.
 
Zurück
Oben