brauche Webseite ideal für Vereine und Firmen
- Ad -
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! Post your PHP questions here!

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: 414
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: 414
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.283
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: 414
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.283
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: 414
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: 461
Blog-Einträge: 2
rossixx befindet sich auf einem aufstrebenden Ast
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: 461
Blog-Einträge: 2
rossixx befindet sich auf einem aufstrebenden Ast
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.550
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: 461
Blog-Einträge: 2
rossixx befindet sich auf einem aufstrebenden Ast
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.550
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

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
belbit LiveSupport Script ansehen belbit LiveSupport Script

Schnellen und unkomplizierten Support im LiveSupport-Chat anbieten. Ohne Datenbank und in wenigen Sekunden installiert.

24.05.2012 EichbaumMedia | Kategorie: PHP/ Chat
 Alle PHP Scripte anzeigen

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