Subversion-Projekte lars-tiefland.content-management

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
    require_once "Mail.php";
3
    require_once "Mail/mime.php";
4
    mysql_connect( "localhost", "content_managem", "k-dp-u" );
5
    mysql_query( "use content_management" );
6
    $handle = time();
7
 
8
    // alle faellingen Eintraege mit dem aktuellen Handle sichern
9
    // faellig = takeOff-Zeizpunkt ist verstrichen, Handle = 0
10
    $sql="UPDATE
11
            mailspool_out
12
        SET
13
            mailUserAgentHandle=$handle
14
        WHERE
15
            takeoff < NOW()
16
        AND
17
            mailUserAgentHandle = 0
18
        LIMIT 1000
19
    ";
20
    $result = mysql_query( $sql );
21
    $sql="SELECT
22
            *
23
        FROM
24
            mailspool_out
25
        WHERE
26
            mailUserAgentHandle = $handle
27
    ";
28
    $result = mysql_query( $sql );
29
 
30
    while ( $zeile = mysql_fetch_assoc( $result ) )
31
    {
32
        if ( preg_match( "/[A-Za-z0-9-_.+]+\@[A-Za-z0-9-_.+]+\.[A-Za-z]+/",
33
            $zeile["to"] ) )
34
        {
35
            $from = $zeile['from'];
36
            $to = $zeile['to'];
37
            $subject = $zeile['subject'];
38
            $body = $zeile['text'];
39
 
40
            $host = $zeile['smtp_server']; // Your domain
41
            $username = $zeile['smtp_user']; // Your user / full email address
42
            $password = $zeile['smtp_pass']; // Password to your email address
43
            $authed = $zeile['smtp_authed'];
44
 
45
            $crlf = "\n";
46
            $mime = new Mail_mime( $crlf );
47
            $plain = strip_tags( $body, "<br><br />" );
48
            $plain = str_replace( array( "<br>", "<br />" ), "\n", $plain );
49
            $mime->setTXTBody( $plain );
50
            $mime->setHTMLBody( $body );
51
 
52
            $headers = array( 'From' => $from, 'Return-Path' => $from,
53
                'Subject' => $subject, "To" => $to, "Date" => date( "r" ), );
54
 
55
            //do not ever try to call these lines in reverse order
56
            $body = $mime->get();
57
            $headers = $mime->headers( $headers, true );
58
 
59
 
60
            if ( $zeile['smtp_server'] )
61
            {
62
                $smtp_opts = array( 'host' => $host, 'auth' => ( bool )$authed,
63
                    'username' => $username, 'password' => $password );
64
                $mail = Mail::factory( 'smtp', $smtp_opts );
65
            }
66
            else
67
            {
68
                $mail = Mail::factory( 'mail' );
69
            }
70
            if ( PEAR::isError( $mail ) )
71
            {
72
                echo ( "<p>" . $mail->getMessage() . "</p>" );
73
            }
74
            else
75
            {
76
                $res = $mail->send( $to, $headers, $body );
77
                if ( PEAR::isError( $res ) )
78
                {
79
                    echo ( "<p>" . $res->getMessage() . "</p>" );
80
                }
81
            }
82
        }
83
    }
84
 
85
    $sql="DELETE FROM
86
            mailspool_out
87
        WHERE
88
            mailUserAgentHandle = $handle
89
    ";
90
    $result = mysql_query( $sql );
91
?>