PHP SMTP-Mailer

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP SMTP-Mailer

    Hallo,

    habe hier ein Mailer der früher mal funktioniert hat, wenn er aber auf meinen Server zu hause läuft, sendet er zwar, aber die kommen nicht an....

    PS.: kann es sein das die als Spam erkannt und sofort gelöscht werden ?

    PHP-Code:
    <?php
    function authSendEmail($from$namefrom$to$nameto$subject$message)
    {
    //SMTP + SERVER DETAILS
    /* * * * CONFIGURATION START * * * */
    $smtpServer "smtp.web.de";
    $port "587";
    $timeout "5";
    $username "Deine EMAIL";
    $password "Dein PW";
    $newLine "\r\n";   
    if (!empty(
    $_SERVER['HTTP_HOST'])) {
    $helo $_SERVER['HTTP_HOST'];
    }elseif(!empty(
    $_SERVER['SERVER_NAME'])) {
    $helo $_SERVER['SERVER_NAME'];
    }else{
    $helo $_SERVER['REMOTE_ADDR'];
    }
    $smtpConnect fsockopen($smtpServer$port$errno$errstr$timeout);
    $smtpResponse fgets($smtpConnect4096);
    if(empty(
    $smtpConnect))
    {
       
    $output "Failed to connect: $smtpResponse";
       echo 
    $output;
       return 
    $output;
    }
    else
    {
       
    $logArray['connection'] = "Connected to: $smtpResponse";
    }

    //you have to say HELO again after TLS is started
       
    fputs($smtpConnect"HELO $helo"$newLine);
       
    $smtpResponse fgets($smtpConnect4096);
       
    $logArray['heloresponse2'] = "$smtpResponse";
       
    //request for auth login
    fputs($smtpConnect,"AUTH LOGIN" $newLine);
    $smtpResponse fgets($smtpConnect4096);
    $logArray['authrequest'] = "$smtpResponse";

    //send the username
    fputs($smtpConnectbase64_encode($username) . $newLine);
    $smtpResponse fgets($smtpConnect4096);
    $logArray['authusername'] = "$smtpResponse";

    //send the password
    fputs($smtpConnectbase64_encode($password) . $newLine);
    $smtpResponse fgets($smtpConnect4096);
    $logArray['authpassword'] = "$smtpResponse";

    //email from
    fputs($smtpConnect"MAIL FROM: $from$newLine);
    $smtpResponse fgets($smtpConnect4096);
    $logArray['mailfromresponse'] = "$smtpResponse";

    //email to
    fputs($smtpConnect"RCPT TO: $to$newLine);
    $smtpResponse fgets($smtpConnect4096);
    $logArray['mailtoresponse'] = "$smtpResponse";

    //the email
    fputs($smtpConnect"DATA" $newLine);
    $smtpResponse fgets($smtpConnect4096);
    $logArray['data1response'] = "$smtpResponse";

    //construct headers
    $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;


    //observe the . after the newline, it signals the end of message
    fputs($smtpConnect"To: $to\r\nFrom: $from\r\nSubject: $subject\r\n$headers\r\n$message\r\n.\r\n");
    $smtpResponse fgets($smtpConnect4096);
    $logArray['data2response'] = "$smtpResponse";

    // say goodbye
    fputs($smtpConnect,"QUIT" $newLine);
    $smtpResponse fgets($smtpConnect4096);
    $logArray['quitresponse'] = "$smtpResponse";
    $logArray['quitcode'] = substr($smtpResponse,0,3);
    fclose($smtpConnect);
    }
    ?>

  • #2
    Du hast dir auch irgendwie die schwerste und komplizierteste Art ausgesucht um eine Mail zu versenden.

    Nimm doch einfach einen fertigen Mailer wie z.B. PHPMailer.

    Kommentar

    Lädt...
    X