Mail doorstuur systeem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Youri van Weegberg

Youri van Weegberg

24/03/2016 13:24:35
Quote Anchor link
Beste leden,

Al een tijdje ben ik aan het vechten met een script om mails door te kunnen sturen. Ik kan bij mij hosting niet automatisch een mail forwarding aanmaken, dus probeer ik het op te lossen met een PHP script.
Dit script moet de POP3 server uitlezen, en de mail naar [email protected] doorsturen naar [email protected] (dit mailadres haal ik uit een DB).
Het lukt mij niet om de mail juist uit te lezen, inclusief HTML mail en attachments. Dit moet natuurlijk allemaal ondersteund worden. Hier en daar heb ik wat scriptjes gevonden, en ik heb nog wat van iemand gekregen, maar dit krijg ik ook niet werkende, en de code is simpelweg een troep. Het gaat om deze code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
function getpart($mbox,$mid,$p,$partno) {
    // $partno = '1', '2', '2.1', '2.1.3', etc for multipart, 0 if simple
    global $htmlmsg,$plainmsg,$charset,$attachments;
//var_dump($p);
    // DECODE DATA

    $data = ($partno)?
        imap_fetchbody($mbox,$mid,$partno):  // multipart
        imap_body($mbox,$mid);  // simple
    // Any part may be encoded, even plain text messages, so check everything.

    if ($p->encoding==4)
        $data = quoted_printable_decode($data);
    elseif ($p->encoding==3)
        $data = base64_decode($data);



    // PARAMETERS
    // get all parameters, like charset, filenames of attachments, etc.

    $params = array();
    if ($p->parameters)
        foreach ($p->parameters as $x)
            $params[strtolower($x->attribute)] = $x->value;
    if ($p->dparameters)
        foreach ($p->dparameters as $x)
            $params[strtolower($x->attribute)] = $x->value;

    // ATTACHMENT
    // Any part with a filename is an attachment,
    // so an attached text file (type 0) is not mistaken as the message.

        if ( ( $p->disposition == 'ATTACHMENT')
                or ( $p->disposition == 'PLAIN')
                or ( $p->disposition == 'HTML')
                )
        {


                                if ($params['filename'] || $params['name']) {
                                        // filename may be given as 'Filename' or 'Name' or both
                                        $filename = ($params['filename'])? $params['filename'] : $params['name'];
                                        // filename may be encoded, so see imap_mime_header_decode()
                                        $attachments[$filename] = $data;  // this is a problem if two files have same name
                                }
        }
//else print $p->disposition;
    // TEXT

    if ($p->type==0 && $data) {
        // Messages may be split in different parts because of inline attachments,
        // so append parts together with blank row.

        if (strtolower($p->subtype) =='plain')
            $plainmsg .= trim($data) ."\n\n";
        else
            $htmlmsg .= $data ."<br><br>";
        $charset = $params['charset'];  // assume all parts are same charset
    }

    // EMBEDDED MESSAGE
    // Many bounce notifications embed the original message as type 2,
    // but AOL uses type 1 (multipart), which is not handled here.
    // There are no PHP functions to parse embedded messages,
    // so this just appends the raw source to the main message.

    elseif ($p->type==2 && $data) {
        $plainmsg .= $data."\n\n";
    }


    // SUBPART RECURSION
    if ($p->parts) {
        foreach ($p->parts as $partno0=>$p2)
            getpart($mbox,$mid,$p2,$partno.'.'.($partno0+1));  // 1.2, 1.2.1, etc.
    }
}
function
getmsg($mbox,$mid) {
    // input $mbox = IMAP stream, $mid = message id
    // output all the following:

    global $charset,$htmlmsg,$plainmsg,$attachments;
    $htmlmsg = $plainmsg = $charset = '';
    $attachments = array();

    // HEADER
    $h = imap_header($mbox,$mid);
    // add code here to get date, from, to, cc, subject...

    // BODY

    $s = imap_fetchstructure($mbox,$mid);
    if (!$s->parts)  // simple
        getpart($mbox,$mid,$s,0);  // pass 0 as part-number
    else {  // multipart: cycle through each part
        foreach ($s->parts as $partno0=>$p)
        {

                    getpart($mbox,$mid,$p,$partno0+1);
        }
    }
}

?>


Is er iemand die hiermee ervaring heeft of mij verder kan helpen?

Alvast bedankt!
Gewijzigd op 24/03/2016 13:26:00 door Youri van Weegberg
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.