Subversion-Projekte lars-tiefland.content-management

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php
    require_once "Mail.php";
    require_once "Mail/mime.php";
    mysql_connect( "localhost", "content_managem", "k-dp-u" );
    mysql_query( "use content_management" );
    $handle = time();

    // alle faellingen Eintraege mit dem aktuellen Handle sichern
    // faellig = takeOff-Zeizpunkt ist verstrichen, Handle = 0
    $sql="UPDATE
            mailspool_out
        SET
            mailUserAgentHandle=$handle
        WHERE
            takeoff < NOW()
        AND
            mailUserAgentHandle = 0
        LIMIT 1000                        
    ";        
    $result = mysql_query( $sql );
    $sql="SELECT
            *
        FROM
            mailspool_out
        WHERE
            mailUserAgentHandle = $handle
    ";
    $result = mysql_query( $sql );

    while ( $zeile = mysql_fetch_assoc( $result ) )
    {
        if ( preg_match( "/[A-Za-z0-9-_.+]+\@[A-Za-z0-9-_.+]+\.[A-Za-z]+/",
            $zeile["to"] ) )
        {
            $from = $zeile['from'];
            $to = $zeile['to'];
            $subject = $zeile['subject'];
            $body = $zeile['text'];

            $host = $zeile['smtp_server']; // Your domain
            $username = $zeile['smtp_user']; // Your user / full email address
            $password = $zeile['smtp_pass']; // Password to your email address
            $authed = $zeile['smtp_authed'];

            $crlf = "\n";
            $mime = new Mail_mime( $crlf );
            $plain = strip_tags( $body, "<br><br />" );
            $plain = str_replace( array( "<br>", "<br />" ), "\n", $plain );
            $mime->setTXTBody( $plain );
            $mime->setHTMLBody( $body );

            $headers = array( 'From' => $from, 'Return-Path' => $from,
                'Subject' => $subject, "To" => $to, "Date" => date( "r" ), );

            //do not ever try to call these lines in reverse order
            $body = $mime->get();
            $headers = $mime->headers( $headers, true );


            if ( $zeile['smtp_server'] )
            {
                $smtp_opts = array( 'host' => $host, 'auth' => ( bool )$authed,
                    'username' => $username, 'password' => $password );
                $mail = Mail::factory( 'smtp', $smtp_opts );
            }
            else
            {
                $mail = Mail::factory( 'mail' );
            }
            if ( PEAR::isError( $mail ) )
            {
                echo ( "<p>" . $mail->getMessage() . "</p>" );
            }
            else
            {
                $res = $mail->send( $to, $headers, $body );
                if ( PEAR::isError( $res ) )
                {
                    echo ( "<p>" . $res->getMessage() . "</p>" );
                }
            }
        }
    }

    $sql="DELETE FROM
            mailspool_out
        WHERE
            mailUserAgentHandle = $handle
    ";
    $result = mysql_query( $sql );
?>