kostenloser Webspace werbefrei: lima-city


Wie funktioniert der Mailversand mit smtp?

lima-cityForumDie eigene HomepageHTML, CSS & Javascript

  1. Autor dieses Themas

    freeread

    freeread hat kostenlosen Webspace.

    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.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    freeread schrieb:
    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.
    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.
    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.
  4. Ich habe da vor langer Zeit mal eine php-function geschrieben, die das damals ganz gut hin bekam.
    <?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;
    	}
    ?>
    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.
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    kelserific schrieb:
    Ich habe da vor langer Zeit mal eine php-function geschrieben, die das damals ganz gut hin bekam.
    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.

    kelserific schrieb:
     	$namefrom = "Bill Gates";
    Hoffen wir, dass das nicht der Fall ist ;-)
  6. thomasba

    Co-Admin Kostenloser Webspace von thomasba

    thomasba hat kostenlosen Webspace.

    hackyourlife schrieb:
    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.
    So ein großer Aufwand ist das nun auch wieder nicht, man muss nur einen Blick in die PHP-Manual werfen:
    PHP: fsockopen

    Solange man kein StartTLS verwendet kann man vor den Host einfach ein
    tls://
    bzw.
    ssl://
    hängen ;-)
  7. hackyourlife schrieb:
    Nur musst du heute bei den meisten Mail-Providern eine Verschlüsselung bei SMTP nutzen, also entweder SSL oder TLS.
    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.

    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.
  8. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    kelserific schrieb:
    hackyourlife schrieb:
    Nur musst du heute bei den meisten Mail-Providern eine Verschlüsselung bei SMTP nutzen, also entweder SSL oder TLS.
    Soweit ich weiß, muss SSL/TLS vom Client initiiert werden und wird vom Server unterstützt und nicht erzwungen.
    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...
  9. Autor dieses Themas

    freeread

    freeread hat kostenlosen Webspace.

    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?
  10. freeread schrieb:
    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 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.
  11. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    kelserific schrieb:
    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.
    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.
  12. hackyourlife schrieb:
    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.
    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 )
  13. Autor dieses Themas

    freeread

    freeread hat kostenlosen Webspace.

    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?
  14. freeread schrieb:
    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?
    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.

    Aber theoretisch steht das Protokoll fest. Es sollte also funktionieren.
  15. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    thomasba schrieb:
    Solange man kein StartTLS verwendet ...
    Und genau an das hatte ich gedacht...

    kelserific 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.
    Über lima-city müsstest du per SMTP Mails versenden können.
    Aber nur solange du auch eine echte Domain besitzt...

    kelserific schrieb:
    Laut hackyourlife kannst du das Script auch erstmal bei diversen Freemail-Anbietern ausprobieren
    Das solltest du auch machen bzw. wirst es machen müssen, wenn du keine Domain auf lima-city besitzt.
  16. Autor dieses Themas

    freeread

    freeread hat kostenlosen Webspace.

    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.
  17. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    freeread schrieb:
    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.
    Bevor du das machst kannst du das Script ja auch schon testen... die lima-city-Domain ändert nur den Absender...
  18. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!