Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 13-12-2015, 23:58
Radeberger
 Registrierter Benutzer
Links : Onlinestatus : Radeberger ist offline
Registriert seit: Dec 2015
Beiträge: 2
Radeberger befindet sich auf einem aufstrebenden Ast
Standard Probleme mit Mails weiterleiten

Hallo!

Mein Name ist Dennis, ich bin ein Neuer hier. Auf das Forum bin ich durch die wirklich gute Seite "peterkropff.de" gestoßen, auf der ich mir vieles über PHP anlesen konnte. Vielen Dank an dieser Stelle für diese wirklich klasse Seite, hat mir sehr oft schon geholfen. Bei meinem aktuellen Problem kann mir nur die Seite leider nicht weiter helfen, deswegen jetzt hier als neuer Thread.

Zu meinem Vorhaben:
Nehmen wir an, es gibt einen Verein, bei dem öfters Mitglieder dazukommen, und andere wieder verschwinden. Zusätzlich gibt es eine Reihe von Freunden des Vereins. Nehmen wir weiter an, der Vorstand möchte öfters eine Mail an alle Mitglieder verschicken, oder auch mal an die Mitglieder und Freunde. Allerdings ist nicht jeder vom Vorstand auf dem aktuellen Stand der Mitglieder und Freunde, es werden also ab und zu einzelne vergessen. Jetzt war meine Idee, zwei Mail-Adressen auf der Vereins-Domain zu registrieren, Freunde@verein.de und Mitglieder@verein.de. Diese Postfächer möchte ich mit php auslesen und dann einfach an eine Reihe von Mail-Adressen schicken, die ich in einer Datenbank mittels einer Admin-Seite einpflegen kann.

So lange es nur um reine Text-Mails geht, ist das kein Problem, da habe ich funktionierenden Code. Der Einfachheit halber habe ich den Part mit den Mail-Adressen aus der Datenbank holen, weggelassen. Der Code läuft bei mir.

PHP-Code:
<?php

$imap_server 
"server.vollhorst.de";
$imap_benutzer "nutzer";
$imap_passwort "lalelu";

$mail "Voll@Horst.net";



$imap imap_open("{" $imap_server ":143}INBOX"$imap_benutzer$imap_passwort);     //Imap Verbindung herstellen

$anzahl imap_num_msg($imap);                                                            //wieviele Nachrichten

if ($anzahl != 0) {

    for (
$i 0$i $anzahl$i++) {
        
        
$struktur imap_fetchstructure($imap$i+1);
        
$imap_header imap_header($imap$i 1);
        
        if(!
$struktur->parts){          //einfach nur Text
            
            
$send_header "From: " $imap_header->from[0]->mailbox "@" $imap_header->from[0]->host;
            
$send_body imap_body($imap$i 1);
            
        }
        else {

            
//hier wird es schwierig
        
}
        
        
mail($mail$imap_header->subject$send_body$send_header);
        
        
imap_delete($imap$i+1);                                                         //gesendete Mail zum löschen markieren
    
}
    
imap_expunge($imap);                                                                 //zum löschen markierte Nachrichten wirklich löschen
}    

imap_close($imap);

?>
Jetzt kommt es aber öfter vor, das der Vorstand auch mal ein Protokoll einer Sitzung verschicken will, in Form eines PDF. Oder es gibt neue Oben-Ohne Bilder von der Hübschen 25-jährigen von der letzten Vereins-Feier. Soll heißen, ich kenne den Datentyp des Anhangs nicht. Und dort habe ich jetzt meine Probleme. Soweit ich weis, kann ich nicht einfach den Header, den die gesendete Mail hat, für meine neue Mail einfach weiter verwenden. Mit dem Body sollte es ja aber funktionieren, oder irre ich mich da? Und wie erstelle ich jetzt einen vernünftigen neuen Header? Am meisten Probleme macht mir die Art des Datei-Anhangs, ob es nun application/PDF oder imagine/jpg oder noch was anderes ist. Das bekomme ich irgendwie mit keiner Funktion in PHP aus der gesendeten Mail heraus.

Ich möchte jetzt keinen völlig fertigen Code haben, den ich einfach kopieren muss, mir würde es reichen, wenn ich die Vorgehensweise kenne. Was muss ich zuerst rausfinden, um das nächste zu wissen, damit ich zum Schluss eine neue Mail verschicken kann und keiner mitbekommt, dass da überhaupt ein kleines Script von mir dazwischen gearbeitet hat.


Ich bedanke mich schon mal im Voraus für Antworten und ich hoffe, alle wesentlichen Informationen gebracht zu haben. Falls nicht, versuche ich gern, nachzubessern.


Dennis
Mit Zitat antworten