Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Direktverbindung mit SMTP Server Anhang versenden?

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Direktverbindung mit SMTP Server Anhang versenden?

    Hallo,

    wie übergeb ich mit PHP einen Emailanhang an den SMTP Server?

    So bereite ich die Datei vor:

    PHP-Code:
    ....
    $anhang["name"] = basename($pfad);
    $anhang["size"] = filesize($pfad);
    $anhang["data"] = implode("",file($pfad));

    $data chunk_split(base64_encode($anhang["data"]));
    $anhang_senden "--".$mime_boundary."\r\n";
    $anhang_senden.= "Content-Disposition: attachment;\r\n";
    $anhang_senden.= "\tfilename=\"".$anhang['name']."\";\r\n";
    $anhang_senden.= "Content-Length: .".$dat['size'].";\r\n";
    $anhang_senden.= "Content-Type: ".$anhang['type']."; name=\"".$anhang['name']."\"\r\n";
    $anhang_senden.= "Content-Transfer-Encoding: base64\r\n\r\n";
    $anhang_senden.= $data."\r\n"
    ..... 
    hier übergebe ich die Datei den SMTP Server:

    PHP-Code:
    ....
     
    $verbindung = @fsockopen($smtp_server 25); 
    .....
    fputs($verbindung,"$inhalt \r\n");
    fputs($verbindung$anhang_senden); /* Anhang anhängen */ 
    .... 
    Ich erhalte dann eine Email die soweit in Ordnung ist auser
    das der Anhang in der Email steht:

    Code:
     
    Test Email!
    
    --
    Content-Disposition: attachment;
    	filename="noc_portal_kalender.ics";
    Content-Length: .;
    Content-Type: ; name="noc_portal_kalender.ics"
    Content-Transfer-Encoding: base64
    
    QkVHSU46VkNBTEVOREFSDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkVSU0lP
    TjoyLjANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9ESUQ6Tk9DIFBvcnRh
    bA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9SRzpEZWNpbXVzIEdtYkgNCiAg
    ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUkw6aHR0cHM6Ly9ub2MucHJpbWFjb20u
    bmV0Lw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FVEhPRDpSRVFVRVNUDQog
    ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkVHSU46VkVWRU5UDQogICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgVUlEOmdlcGxhbnRlX2FyYmVpdGVuX25vY19wb3J0YWxf
    MTcyOA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9SR0FOSVpFUjtDTj0iQ2Vu
    dHJhbCBTeXN0ZW1zIjpNQUlMVE86bm9jQGRlY2ltdXMudHYNCiAgICAgICAgICAgICAgICAgICAg
    ICAgICAgICAgICAgICBMT0NBVElPTjpTdGFkdC9PcnQ6INxiZXJoZXJybiAKDQogICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgU1VNTUFSWTpnZXBsYW50ZSBBcmJlaXRlbiBLYXJ0ZW5u
    dW1tZXI6IDE3MjggLSBCZXRyb2ZmZW5lIFNlcnZpY2U6IGFsbGUgU2VydmljZSAtIFdpY2h0aWdr
    ZWl0OiBOb3JtYWwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVNDUklQVElP
    TjoKICAgICBOT0MgUG9ydGFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
    ICAgICAgICAgICAgICAgIERlY2ltdXMgIAoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Vw
    bGFudGUgQXJiZWl0ZW4gS2FydGVubnVtbWVyOiAxNzI4IAoKU3RhZHQvT3J0OiDcYmVyaGVycm4g
    CkFydCBkZXMgYXVzZmFsbGVzOiBTdHJvbWFic2NoYWx0dW5nIApCZXRyb2ZmZW5lIFNlcnZpY2U6
    IGFsbGUgU2VydmljZSAKVmVyYW50d29ydGxpY2hlcjogCiAgIFZvcm5hbWU6IHRlc3QgCiAgIE5h
    Y2huYW1lOiB0ZXN0IAogICBUZWxlZm9uOiB0ZXN0IApCZW1lcmt1bmc6ICB0ZXN0IApaZWl0cmF1
    bTogICBEYXR1bTogMTE6NTMgIDE0LjEwLjIwMTAgICAgLSAgICBFbmRlOiAxODoxOCAgICAgMTQu
    MTAuMjAxMCAKICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaXQgZnJldW5kbGlj
    aGVuIEdy/N9lbiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOT0MgRGVjaW11cyAgTWVp
    a28gRWljaGxlciAKCk1laWtvIEVpY2hsZXIgCk5PQyBPcGVyYXRvciAKQ2VudHJhbCBTeXN0ZW1z
    IAoKVGVsZWZheDogKzQ5IDM0MSA2MDk1MjQ3NCAKRS1NYWlsOiBub2NAZGVjaW11cy50diAKd3d3
    LnByaW1hY29tLmRlIAoKRWluIFVudGVybmVobWVuIGRlciBQcmltYUNvbSBHcnVwcGUgCkRlY2lt
    dXMgR21iSCAKTWVzc2VhbGxlZSAyIAowNDM1NiBMZWlwemlnIApTaXR6IE1haW56LCBBbXRzZ2Vy
    aWNodCBNYWlueiBIUiBCIDc4MDQgIApHZXNjaORmdHNm/GhyZXI6IE1pY2hhZWwgRG9ybiwgVGhv
    bWFzIEVpYmVjaywgRHIuSGFucyBQZXRlciBMZXViZSAKCkRlciBJbmhhbHQgZGllc2VyIEUtTWFp
    bCBpc3QgdmVydHJhdWxpY2guCkZhbGxzIFNpZSBuaWNodCBkZXIgYW5nZWdlYmVuZSBFbXBm5G5n
    ZXIgc2luZCBvZGVyIGZhbGxzIGRpZXNlIEUtTWFpbCBpcnJ0/G1saWNoIGFuIFNpZSBhZHJlc3Np
    ZXJ0IHd1cmRlLCB2ZXJzdORuZGlnZW4gU2llIGJpdHRlIGRlbiBBYnNlbmRlciBzb2ZvcnQgdW5k
    IGz2c2NoZW4gU2llIGRpZSBFLU1haWwgc29kYW5uLgpEYXMgdW5lcmxhdWJ0ZSBLb3BpZXJlbiBz
    b3dpZSBkaWUgdW5iZWZ1Z3RlINxiZXJtaXR0bHVuZyBzaW5kIG5pY2h0IGdlc3RhdHRldC4gRGll
    IFNpY2hlcmhlaXQgdm9uINxiZXJtaXR0bHVuZ2VuIHBlciBFLU1haWwga2FubiBuaWNodCBnYXJh
    bnRpZXJ0IHdlcmRlbi4KRmFsbHMgU2llIGVpbmUgQmVzdOR0aWd1bmcgd/xuc2NoZW4sIGZvcmRl
    cm4gU2llIGJpdHRlIGRlbiBJbmhhbHQgZGVyIEUtTWFpbCBhbHMgSGFyZGNvcHkgYW4uCgpUaGUg
    Y29udGVudHMgb2YgdGhpcyBlLW1haWwgYXJlIGNvbmZpZGVudGlhbC4gCklmIHlvdSBhcmUgbm90
    IHRoZSBuYW1lZCBhZGRyZXNzZWUgb3IgaWYgdGhpcyB0cmFuc21pc3Npb24gaGFzIGJlZW4gYWRk
    cmVzc2VkIHRvIHlvdSBpbiBlcnJvciwgcGxlYXNlIG5vdGlmeSB0aGUgc2VuZGVyIGltbWVkaWF0
    ZWx5IGFuZCB0aGVuIGRlbGV0ZSB0aGlzIGUtbWFpbC4KQW55IHVuYXV0aG9yaXplZCBjb3B5aW5n
    IGFuZCB0cmFuc21pc3Npb24gaXMgZm9yYmlkZGVuLgpFLU1haWwgdHJhbnNtaXNzaW9uIGNhbm5v
    dCBiZSBndWFyYW50ZWVkIHRvIGJlIHNlY3VyZS4gSWYgdmVyaWZpY2F0aW9uIGlzIHJlcXVpcmVk
    LCBwbGVhc2UgcmVxdWVzdCBhIGhhcmQgY29weSB2ZXJzaW9uLgoKDQogICAgICAgICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgTE9DQVRJT047TEFOR1VBR0U9ZW46R2VybWFueQ0KICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgIERUU1RBUlQ6MjAxMDEwMTRUMTE1MzAwDQogICAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgICAgRFRFTkQ6MjAxMDEwMTRUMTgxODAwDQogICAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgICAgRFRTVEFNUDoyMDEwMTAxNFQxMjM3MDENCiAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTEFTUzpQVUJMSUMNCiAgICAgICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgICBDQVRFR09SSUVTOkJVU0lORVNTLFBST0pFQ1QNCiAgICAgICAg
    ICAgICAgICAgICAgICAgICAgICAgICAgICBUUkFOU1A6T1BBUVVFDQogICAgICAgICAgICAgICAg
    ICAgICAgICAgICAgICAgICAgRU5EOlZFVkVOVA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
    ICAgICAgIEVORDpWQ0FMRU5EQVI=

    Gruß Meiko

  • #2
    Warum benutzt du denn keine Mail-Klasse wie phpMailer?

    EDIT: und dein $mime_boundary scheint leer zu sein und ich glaube das muss am Ende der Datei auch nochmal eingefügt werden

    Kommentar


    • #3
      So kann ich alles Besser kontrollieren.
      Ich erhalte auch mehr Informationen was gerade geschieht.

      Kommentar


      • #4
        Dann sollte dir aber auch klar sein was passiert wenn du zwischendurch einfach mal $dat statt $anhang verwendest (siehe Content-Length)

        Kommentar


        • #5
          //.. einfach mal $dat statt $anhang

          aha so passiert es wenn man noch was anderes macht

          stimmt daran wird es liegen ( $mime_boundary )

          PHP-Code:
          $mime_boundary "<<<:" md5(uniqid(mt_rand(), 1)); 
          Irgendwo muss es noch rein am Ende stimmt, aber das langt nicht.
          Werd am WE weiter machen habe jetzt Feierabend

          Gruß Meiko

          Kommentar


          • #6
            Hi,

            habe das Problem gelößt,

            es lag an Boundary ( -- ) der Aufbau muss so sein:

            --ID

            Normaler Text

            --ID

            Datei

            --ID--
            Ende

            Dann passt es


            Gruß Meiko

            Kommentar


            • #7
              Nein. Es lag an mail(). Und es liegt immer noch an mail().
              Wieso man mit der schlechteren Lösung eine bessere Kontrolle hat als mit der besseren, das soll man mal verstehen...

              Morgen machst du dann einen Thread auf um zu fragen, warum deine Mails nicht ankommen bzw. im Spampostfach landen?

              Kommentar


              • #8
                nö nicht wirklich

                mail() nutze ich nicht ich bevorzuge den Direkten weg.

                Mein Programm funst schon seit Jahren.

                Hab es jetzt für ics umgeschrieben.

                Geht auch alles wieder bis auf die Formatierung die Verloren geht
                im ersten Block wenn ich HTML dort Übermittle.

                Der Aufbau ist so:

                PHP-Code:
                Content-Typemultipart/mixedboundary=\"--ID\"

                --ID // Erster Block
                   Content-Type: text/html; 

                --ID // zweiter Block

                  Content-Type: text/calendar;

                --ID-- 
                Wenn ich einen anderen Content-Type nehme im zweiten Block zb "ics" wird alles wieder super angezeigt nehme ich aber den Vorgeschriebenen zerhackt
                es meinen HTML Ausrichtungen es wird alles kleiner.

                Hast du da eine Lösung?

                gruß

                Kommentar


                • #9
                  Als boundary verwendet man idR. eine lange, möglichst zufällige Zeichenkombination - schließlich darf diese nicht innerhalb des Inhaltes auftauchen, sonst gibt's Probleme.

                  Dass du mit "--ID" genügend darauf geachtet hast, dass dieser Wert im Inhalt nicht vorkommt, nimmst du doch wohl nicht mal selber ernsthaft an ...?

                  Kommentar


                  • #10
                    ich hab doch nur hier ID hingeschrieben wollte jetzt nicht unbedingt die Kilometer Nummer hinschreiben.

                    Kommentar


                    • #11
                      Hab das Problem gefunden, es liegt an Mozilla Mail.
                      Der Grund liegt in der mitgelieferten Datei ics.
                      Es werden alle Tags überschrieben so das man sie nicht
                      mehr richtig ansprechen kann aber mit
                      CSS kann man das wieder rückgängig machen.
                      Schreib jetzt alles um dann Passt das wieder

                      gruß

                      Kommentar

                      Lädt...
                      X