Wie funktioniert der Mailversand mit smtp?
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
angebot
aufwand
ausprobieren
benutzen
besitz
code
domain
email
funktion
funktionieren
machen
nutzen
postfach
problem
protokoll
sagen
server
url
verbindung
versenden
-
Ich benutze im Moment die mail()-Funktion in php, um Mails zu versenden. In den Spezifikationen auf php.net wird darauf hingewiesen, dass diese Funktion nicht geeignet ist, um eine große Anzahl an Mails auf einmal zu versenden. Daneben besteht ja eine Restriktion diesbezüglich auf diesem Service. Dies ist auch meiner Meinung nach nützlich, um Spam vorzubeugen.
Wenn ich nun einen Newsletter an registrierte Mitglieder auf meiner Webseite versenden möchte, kommt schon eine große Anzahl an Mails auf.
Ich habe jedoch keine Ahnung, wie ich den Mailversand mit smtp lösen kann. Ich habe versucht mich in diese Thematik einzulesen, jedoch ohne Erfolg. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
freeread schrieb:
Mal kurz und grob erklärt: du brauchst einen Mailserver (sowas wie einen GMX-Account) über den du per SMTP Mails verschicken kannst. Um dann die Mails zu verschicken verbindest du dich mit dem SMTP-Server, kennst das SMTP-Protokoll und schickst die Nachricht an den Server, der sie dann an die Empfänger verteilt.
Ich habe jedoch keine Ahnung, wie ich den Mailversand mit smtp lösen kann. Ich habe versucht mich in diese Thematik einzulesen, jedoch ohne Erfolg.
Das ganze ist allerdings ein Aufwand... abgesehen davon wirst du heute kaum noch Server finden die SMTP unverschlüsselt zulassen, und somit wird es noch mehr Aufwand. -
Ich habe da vor langer Zeit mal eine php-function geschrieben, die das damals ganz gut hin bekam.
Die Konfiguration muss natürlich angepasst werden. Inzwischen würde ich das ganze in ein Objekt auslagern, aber wenn man nichts großes vor hat, sollte das so reichen.<?php function authSendEmail($to, $nameto, $subject, $message) { global $config; load_smtp_cfg(); $smtpServer = "smtp.domain.tld"; $port = 25; $timeout = 30; $username = "deinname"; $password = "deinpass123"; $from = "foo@bar.tld"; $namefrom = "Bill Gates"; $localhost = "localhost"; $newLine = "\r\n"; $smtpConnect = fsockopen($smtpServer, $port, $errno, $errstr, $timeout); $smtpResponse = fgets($smtpConnect, 515); if(empty($smtpConnect)){ $output = "Failed to connect: $smtpResponse"; return $output; }else{ $logArray['connection'] = "Connected: $smtpResponse"; } fputs($smtpConnect,"AUTH LOGIN" . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['authrequest'] = "$smtpResponse"; fputs($smtpConnect, base64_encode($username) . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['authusername'] = "$smtpResponse"; fputs($smtpConnect, base64_encode($password) . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['authpassword'] = "$smtpResponse"; fputs($smtpConnect, "HELO $localhost" . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['heloresponse'] = "$smtpResponse"; fputs($smtpConnect, "MAIL FROM: $from" . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['mailfromresponse'] = "$smtpResponse"; fputs($smtpConnect, "RCPT TO: $to" . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['mailtoresponse'] = "$smtpResponse"; fputs($smtpConnect, "DATA" . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['data1response'] = "$smtpResponse"; $headers = "MIME-Version: 1.0" . $newLine; $headers .= "Content-type: text/html; charset=iso-8859-1" . $newLine; $headers .= "To: $nameto <$to>" . $newLine; $headers .= "From: $namefrom <$from>" . $newLine; fputs($smtpConnect, "To: $to\nFrom: $from\nSubject: $subject\n$headers\n\n$message\n.\n"); $smtpResponse = fgets($smtpConnect, 515); $logArray['data2response'] = "$smtpResponse"; fputs($smtpConnect,"QUIT" . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['quitresponse'] = "$smtpResponse"; return $logArray; } ?>
-
kelserific schrieb:
Nur musst du heute bei den meisten Mail-Providern eine Verschlüsselung bei SMTP nutzen, also entweder SSL oder TLS.
Ich habe da vor langer Zeit mal eine php-function geschrieben, die das damals ganz gut hin bekam.
Dazu musst du dein Script anpassen... und das ist doch immerhin schon einiger Aufwand.
kelserific schrieb:
Hoffen wir, dass das nicht der Fall ist
$namefrom = "Bill Gates";
-
hackyourlife schrieb:
So ein großer Aufwand ist das nun auch wieder nicht, man muss nur einen Blick in die PHP-Manual werfen:
Nur musst du heute bei den meisten Mail-Providern eine Verschlüsselung bei SMTP nutzen, also entweder SSL oder TLS.
Dazu musst du dein Script anpassen... und das ist doch immerhin schon einiger Aufwand.
PHP: fsockopen
Solange man kein StartTLS verwendet kann man vor den Host einfach ein
bzw.tls://
hängenssl://
-
hackyourlife schrieb:
Soweit ich weiß, muss SSL/TLS vom Client initiiert werden und wird vom Server unterstützt und nicht erzwungen. Aber ich habe mich lange nicht mehr mit dem Thema beschäftigt, kann durchaus sein, dass sich die Welt weiter gedreht hat.
Nur musst du heute bei den meisten Mail-Providern eine Verschlüsselung bei SMTP nutzen, also entweder SSL oder TLS.
Allerdings sollten sich im Netz auch Scripts finden lassen, welche dann SSL/TLS unterstützen und vor allem ordentlich als Objekt verpackt sind.
Bei meinem Hoster macht das Script auf jeden Fall keine Probleme. Kann aber durchaus sein, dass GMX & Co das enger sehen. -
kelserific schrieb:
Das ist richtig, nur gibt es in letzter Zeit auch einige Provider die bei unverschlüsselten Verbindungen einfach einen "ERR" zurückschicken mit der Begründung, dass unverschlüsselte Verbindungen nicht erlaubt sind...
hackyourlife schrieb:
Soweit ich weiß, muss SSL/TLS vom Client initiiert werden und wird vom Server unterstützt und nicht erzwungen.
Nur musst du heute bei den meisten Mail-Providern eine Verschlüsselung bei SMTP nutzen, also entweder SSL oder TLS. -
kelserific schrieb:
Bei meinem Hoster macht das Script auf jeden Fall keine Probleme. Kann aber durchaus sein, dass GMX & Co das enger sehen.
Welchen Hoster verwendest du? -
freeread schrieb:
Ich halte es für unpassend, bei einem Hoster Werbung für einen anderen zu machen.
kelserific schrieb:
Bei meinem Hoster macht das Script auf jeden Fall keine Probleme. Kann aber durchaus sein, dass GMX & Co das enger sehen.
Welchen Hoster verwendest du?
Ich würde mal sagen: Bei so ziemlich jedem Hoster den ich kenne funktioniert es weitestgehend. Wenn du bei Lima-City eine Domain mit Email-Postfach hast, wird es sicher auch da funktionieren. -
kelserific schrieb:
Naja, das ist immer noch abhängig vom verwendeten Mail-Provider.
Ich halte es für unpassend, bei einem Hoster Werbung für einen anderen zu machen.
Ich würde mal sagen: Bei so ziemlich jedem Hoster den ich kenne funktioniert es weitestgehend. Wenn du bei Lima-City eine Domain mit Email-Postfach hast, wird es sicher auch da funktionieren.
Und nach einer Recherche: gmx und web.de mag unverschlüsselte Verbindungen, gmail nicht. -
hackyourlife schrieb:
Nun, so ziemlich jeder Hoster bietet einen eigenen Mail-Server an. Natürlich kann man auch einen externen Mail-Provider benutzen, aber sowas hatte ich ehrlich gesagt so gut wie nie nötig. ( Außer um meine eigentlichen Postfächer Spam-Frei zu halten. :p )
Naja, das ist immer noch abhängig vom verwendeten Mail-Provider.
Und nach einer Recherche: gmx und web.de mag unverschlüsselte Verbindungen, gmail nicht. -
kelserific schrieb:
Ich würde mal sagen: Bei so ziemlich jedem Hoster den ich kenne funktioniert es weitestgehend. Wenn du bei Lima-City eine Domain mit Email-Postfach hast, wird es sicher auch da funktionieren.
Also, wenn ich eine Domain mit Postfach besitze, z.B. hier auf lima-city, dann kann ich dieses Postfach benutzen, um über smtp e-Mails per script zu versenden. Habe ich das so richtig verstanden?
Würden dann die o.g. PHP-Codes hiermit funktionieren? -
freeread schrieb:
Wenn ich das Angebot von Lima-City richtig verstehe, hat man bei einer Domain auch Email-Postfächer dabei. Ich habe es natürlich bei Lima-City noch nicht ausprobiert, aber theoretisch sollte das kein Problem darstellen. Laut hackyourlife kannst du das Script auch erstmal bei diversen Freemail-Anbietern ausprobieren - wie schon gesagt: Es ist schon Urzeiten her, dass ich es mal geschrieben habe. Mag sein, dass sich da einiges geändert hat. Eventuell hat auch PHP inzwischen schon eine eigene Implementierung von SMTP.
Also, wenn ich eine Domain mit Postfach besitze, z.B. hier auf lima-city, dann kann ich dieses Postfach benutzen, um über smtp e-Mails per script zu versenden. Habe ich das so richtig verstanden?
Würden dann die o.g. PHP-Codes hiermit funktionieren?
Aber theoretisch steht das Protokoll fest. Es sollte also funktionieren. -
thomasba schrieb:
Und genau an das hatte ich gedacht...
Solange man kein StartTLS verwendet ...
kelserific schrieb:
Über lima-city müsstest du per SMTP Mails versenden können.
Wenn ich das Angebot von Lima-City richtig verstehe, hat man bei einer Domain auch Email-Postfächer dabei. Ich habe es natürlich bei Lima-City noch nicht ausprobiert, aber theoretisch sollte das kein Problem darstellen.
Aber nur solange du auch eine echte Domain besitzt...
kelserific schrieb:
Das solltest du auch machen bzw. wirst es machen müssen, wenn du keine Domain auf lima-city besitzt.
Laut hackyourlife kannst du das Script auch erstmal bei diversen Freemail-Anbietern ausprobieren -
Danke für eure Hilfen. Ich werde das mit den o.g. Scripten mal ausprobieren und mir demnächst eine Domain hier bei lima-city zulegen. Hoffentlich funktionierts.
-
freeread schrieb:
Bevor du das machst kannst du das Script ja auch schon testen... die lima-city-Domain ändert nur den Absender...
Danke für eure Hilfen. Ich werde das mit den o.g. Scripten mal ausprobieren und mir demnächst eine Domain hier bei lima-city zulegen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage