php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 26-05-2007, 10:22
enforcer
 Newbie
Links : Onlinestatus : enforcer ist offline
Registriert seit: Nov 2006
Beiträge: 80
enforcer ist zur Zeit noch ein unbeschriebenes Blatt
Standard email mit anhang - einer zuviel?

Hallo..
Folgendes Problem: die Email wird mit Anhang verschickt. Die im Array enthaltenen Dokumente sind vorhanden. Allerdings habe ich noch eine attachment.pdf im Anhang? Wo kommt die die her?

PHP-Code:
<?
    
// Festlegen der Variablen
    
$dokumente_num    count($dokumente);
    
$Empfaenger "meine@email.de";
    
$betreff "Meine Daten";
    
$Header "From: mir<meine@email.de>";
    
$Content "";
    
    
// Beginn der Mail    
    
$Trenner md5(uniqid(time()));
    
$Header .= "\n";
    
$Header .= "MIME-Version: 1.0";
    
$Header .= "\n";
    
$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
    
$Header .= "\n\n";
    
$Header .= "This is a multi-part message in MIME format";
    
$Header .= "\n";
    
$Header .= "--$Trenner";
    
$Header .= "\n";
    
$Header .= "Content-Type: text/plain";
    
$Header .= "\n";
    
$Header .= "Content-Transfer-Encoding: 8bit";
    
$Header .= "\n\n"
    
$Header .= $Content
    
$Header .= "\n";
    
    
    
// Dokumente anhängen
    
for ($i=0$i <= $dokumente_num$i++) {
    
        
$filename $pdf_pfad.$dokumente[$i];
        
$filenameMail $dokumente[$i];
        
$Header .= "--$Trenner";
        
$Header .= "\n";
        
$Header .= "Content-Type: application/pdf; name=".$filenameMail;
        
$Header .= "\n";
        
$Header .= "Content-Transfer-Encoding: base64";
        
$Header .= "\n";
        
$Header .= "Content-Disposition: attachment; filename=".$filenameMail;
        
$Header .= "\n\n";
        
$Dateiinhalt fread(fopen($filename"r"), filesize($filename));
        
$Header .= chunk_split(base64_encode($Dateiinhalt));
        
$Header .= "\n";
        
    }
    
$Header .= "--$Trenner--";
    
$status mail($Empfaenger$betreff""$Header); 
?>
__________________
Wenn die Sonne der Kultur niedrig steht, werfen selbst Zwerge einen Schatten. (Karl Kraus)
Mit Zitat antworten
  #2 (permalink)  
Alt 26-05-2007, 10:57
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

Verwende anstelle von \n mal \r\n
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.
Mit Zitat antworten
  #3 (permalink)  
Alt 31-07-2007, 09:13
xJonx
 Registrierter Benutzer
Links : Onlinestatus : xJonx ist offline
Registriert seit: Mar 2006
Ort: Bielefeld
Beiträge: 421
xJonx zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

ich hab leider gerade das selbe problem.
allerdings wirkt das \r\n nicht ...

ansonsten habe ich den selben script (fast)

woran könnte es noch liegen?
__________________
Design & Coding with a breeze of madness at xjonx
Mit Zitat antworten
  #4 (permalink)  
Alt 31-07-2007, 09:57
xkl1986
 Member
Links : Onlinestatus : xkl1986 ist offline
Registriert seit: May 2007
Ort: NRW
Beiträge: 215
xkl1986 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Der Abschluss des Headers erfolgt mit \r\n\r\n
statt
PHP-Code:
$Header .= "--$Trenner--"
also
PHP-Code:
$Header .= "--$Trenner--\r\n\r\n"
__________________
"Nicht jeder Mensch kann und soll Programmieren[...]".
Mit Zitat antworten
  #5 (permalink)  
Alt 31-07-2007, 10:04
xJonx
 Registrierter Benutzer
Links : Onlinestatus : xJonx ist offline
Registriert seit: Mar 2006
Ort: Bielefeld
Beiträge: 421
xJonx zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

ich hab ansich noch ne gute lösung:

PHP-Code:
for ($i 0$i $docs$i++) { 
und nicht

PHP-Code:
for ($i 0$i <= $docs$i++) { 
Aber danke.
__________________
Design & Coding with a breeze of madness at xjonx
Mit Zitat antworten
  #6 (permalink)  
Alt 31-07-2007, 10:30
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Und wieso übergibst du den Inhalt der Email und die Header der einzelnen Parts in Header an Mail ? afaik gehören Header des Emailparts und Inhalt des Parts in eine eigene Var welche als body an mail() übergeben wird
Zitat:
bool mail ( string $to, string $subject, string $message [, string $additional_headers [, string $additional_parameters]] )
also die Header der einzelnen Parts und deren Inhalt gehören in message und nicht in additional headers. Dorthin gehören nur die Angaben, die Email weit gültig sind.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #7 (permalink)  
Alt 31-07-2007, 10:53
xJonx
 Registrierter Benutzer
Links : Onlinestatus : xJonx ist offline
Registriert seit: Mar 2006
Ort: Bielefeld
Beiträge: 421
xJonx zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

ja weiß ich ja ... nur leider krieg ich das nicht fehler frei getrennt.
sonst würde ich es auch lieber so machen ...
__________________
Design & Coding with a breeze of madness at xjonx
Mit Zitat antworten
  #8 (permalink)  
Alt 31-07-2007, 10:59
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
nur leider krieg ich das nicht fehler frei getrennt.
und dann behälst du es lieber fehlerbehaftet zusammen
Was spricht denn dagegen ein Var body einzuführen
PHP-Code:
$Header .= "\n";
$Header .= "MIME-Version: 1.0";
$Header .= "\n";
$Header .= "Content-Type: multipart/mixed; boundary=$Trenner";
$Header .= "\n\n";
$body .= //Ab hier nur noch Body verwenden 
Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #9 (permalink)  
Alt 31-07-2007, 13:28
xJonx
 Registrierter Benutzer
Links : Onlinestatus : xJonx ist offline
Registriert seit: Mar 2006
Ort: Bielefeld
Beiträge: 421
xJonx zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

also so, am bsp:
PHP-Code:
<?

    $dokumente_num    
count($dokumente);
        
$Empfaenger "meine@email.de";
        
$betreff "Meine Daten";
        
$header "From: mir<meine@email.de>";
        
$Content "";

        
// Beginn der Mail    
        
$Trenner md5(uniqid(time()));
        
$header .= "\n";
        
$header .= "MIME-Version: 1.0";
        
$header .= "\n";
        
$header .= "Content-Type: multipart/mixed; boundary=$Trenner";
        
$header .= "\n\n";
        
$body   .= "This is a multi-part message in MIME format";
        
$body   .= "\n";
        
$body   .= "--$Trenner";
        
$body   .= "\n";
        
$body   .= "Content-Type: text/plain";
        
$body   .= "\n";
        
$body   .= "Content-Transfer-Encoding: 8bit";
        
$body   .= "\n\n"
        
$body   .= $Content
        
$body   .= "\n";


        
// Dokumente anhängen
        
for ($i=0$i <= $dokumente_num$i++) {

            
$filename $pdf_pfad.$dokumente[$i];
            
$filenameMail $dokumente[$i];
            
$body .= "--$Trenner";
            
$body .= "\n";
            
$body .= "Content-Type: application/pdf; name=".$filenameMail;
            
$body .= "\n";
            
$body .= "Content-Transfer-Encoding: base64";
            
$body .= "\n";
            
$body .= "Content-Disposition: attachment; filename=".$filenameMail;
            
$body .= "\n\n";
            
$Dateiinhalt fread(fopen($filename"r"), filesize($filename));
            
$body .= chunk_split(base64_encode($Dateiinhalt));
            
$body .= "\n";

        }
        
$body   .= "--$Trenner--";
        
$status mail($Empfaenger$betreff$body$header);

?>
__________________
Design & Coding with a breeze of madness at xjonx
Mit Zitat antworten
  #10 (permalink)  
Alt 31-07-2007, 21:12
enforcer
 Newbie
Links : Onlinestatus : enforcer ist offline
Registriert seit: Nov 2006
Beiträge: 80
enforcer ist zur Zeit noch ein unbeschriebenes Blatt
Standard

php5 & mysql5 sei dank gehts nun auch einfacher

PHP-Code:
<?php
// Festlegen der Variablen
$dokumente_num    count($dokumente);
$Empfaenger     "deine@email.de";
$Betreff    "Eine Email mit Anhang für PHP-Resource";
$Absender   "From: email <mein@email.de>";
$Nachricht  "txt der mail"


// Aufbau der Nachricht und des Anhangs
    
for ($i=0$i <= $dokumente_num-1$i++) {
    
        
$Nachricht .= "\r\n";
        
$Nachricht .= "begin 666 ".$dokumente_num[$i]."\r\n";
        
$Nachricht .= convert_uuencode(fread(fopen($dokumente_num[$i], "r"), filesize($dokumente_num[$i])));
        
$Nachricht .= "end\r\n";
    }

mail($Empfaenger$Betreff$Nachricht$Absender);

?>
so geht bei mir optimal und auch bei mehreren anhängen ganz einfach
__________________
Wenn die Sonne der Kultur niedrig steht, werfen selbst Zwerge einen Schatten. (Karl Kraus)
Mit Zitat antworten
  #11 (permalink)  
Alt 29-07-2009, 14:06
rossixx
 Registrierter Benutzer
Links : Onlinestatus : rossixx ist offline
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 514
Blog-Einträge: 2
rossixx wird schon bald berühmt werden
Standard bei mir kein anhang

PHP-Code:

        $Empfaenger 
"$email_ziel";
        
$betreff "$betreff";
        
$header  "From: mir<meine@email.de>";
    
$header  .= "To: ".$email_ziel."\r\n";
        
$Content "xyz";

        
// Beginn der Mail    
        
$Trenner md5(uniqid(time()));
        
$header .= "\n";
        
$header .= "MIME-Version: 1.0";
        
$header .= "\r\n";
        
$header .= "Content-Type: multipart/mixed; boundary=$Trenner";
        
$header .= "\n\n";
    
$body   $Content
    
$body   .= "\r\n"
        
$body   .= "This is a multi-part message in MIME format";
        
$body   .= "\n";
        
$body   .= "--$Trenner--";
        
$body   .= "\n";
        
$body   .= "Content-Type: text/plain";
        
$body   .= "\n";
        
$body   .= "Content-Transfer-Encoding: 8bit";
        
$body   .= "\n\n"
        
//$body   .= $Content; 
        
$body   .= "\n"
    if (
$anhang_1_name) { 
        
$filename "tmp_upload/".$anhang_1_name;
            
$filenameMail $anhang_1_name;
            
$body .= "--$Trenner--";
            
$body .= "\n";
            
$body .= "Content-Type: application/pdf; name=".$filenameMail;
            
$body .= "\n";
            
$body .= "Content-Transfer-Encoding: base64";
            
$body .= "\n";
            
$body .= "Content-Disposition: attachment; filename=".$filenameMail;
            
$body .= "\n\n";

            
$fff chunk_split(base64_encode(file_get_contents($filename)));

echo 
"f=$fff <br> name = $filename";

            
$body .= "\r\n"
        }
        
$body .= "--$Trenner--"
        
$status mail($Empfaenger$betreff$body$header); 
sobald ich $fff in den body hänge ( $body = .$fff; ) wird keine email versendet.
ohne gehts aber dann is auch kein anhang dran.
Mit Zitat antworten
  #12 (permalink)  
Alt 29-07-2009, 14:56
rossixx
 Registrierter Benutzer
Links : Onlinestatus : rossixx ist offline
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 514
Blog-Einträge: 2
rossixx wird schon bald berühmt werden
Exclamation Lösung gefunden - Email mit Anhang

PHP-Code:

function email_anhang$email_ziel$betreff$mail_text$absender$anhang_1_name ){
    
$boundary md5(uniqid(rand(), 1));
    
$header ="MIME-Version: 1.0\n";
    
$header.="From: $absender\n";
    
$header.="Content-Type: multipart/mixed; boundary=" $boundary "\n";
    
    
$msg="\n--" $boundary "\n";
    
$msg.="Content-Type: text/html;charset=iso-8859-1\n";
    
$msg.="Content-Transfer-Encoding: base64\n\n";
    
$msg.= chunk_split(base64_encode("
        <!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"
            \"http://www.w3.org/TR/REC-html40/loose.dtd\">
        <html><head>
        <title>$betreff</title>
        </head><body>
        <b>$mail_text - Das ist noch eine Testmail mit Anhang.</b>
        </body></html>\n"
)); 

    
$msg.="\n--" $boundary "\n";

    
$msg.="Content-Type: Application/pdf; name=$anhang_1_name\n";
    
$msg.="Content-Transfer-Encoding: base64\n";
    
$msg.="Content-Disposition:attachment;filename=$anhang_1_name\n\n";
    
$f=fopen("tmp_upload/$anhang_1_name","rb");
    
$msg.=chunk_split(base64_encode(fread($f,filesize("tmp_upload/$anhang_1_name"))));
    
fclose($f);

    
$msg.="\n--" $boundary "\n";
    
$status mail($email_ziel$betreff$msg$header);
    return 
$status;

Mit Zitat antworten
  #13 (permalink)  
Alt 29-07-2009, 15:15
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Der letzte MIME-Part einer Multipart-Message muss aber mit
Code:
--<BOUNDARY>--
abgeschlossen werden.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #14 (permalink)  
Alt 29-07-2009, 15:32
rossixx
 Registrierter Benutzer
Links : Onlinestatus : rossixx ist offline
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 514
Blog-Einträge: 2
rossixx wird schon bald berühmt werden
Arrow aber sonst läuft es

welche zeile meinst du ????
Mit Zitat antworten
  #15 (permalink)  
Alt 29-07-2009, 15:35
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

PHP-Code:
    $msg.="\n--" $boundary "\n"// <==== die hier
    
$status mail($email_ziel$betreff$msg$header);
    return 
$status
Wenn es sonst läuft, ist das Glück würde ich sagen. Es gibt Internet-Standards aber nicht ohne Grund und die sollte man einhalten.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:10 Uhr.