php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.02.2009, 10:30  
Neuer Benutzer
 
Registriert seit: 16.02.2009
Beiträge: 7
SteSte befindet sich auf einem aufstrebenden Ast
Standard Email Script(s) funktionieren nicht

Hallo liebes Forum,

ich habe mir aus dem Netz ein paar E-Mail Zeilen kopiert und versucht anzuwenden. Leider nur ohne Erfolg.

Zum Beispiel das hier, von der Seite:
PHP - E-Mail mit Anhang - PHP @ tutorials.de: Forum, Tutorial, Anleitung, Schulung & Hilfe
PHP-Code:
function MailVersenden($an$cc$bcc$from$betreff$text$datei$dateiname) { 

     
$email_subject $betreff// The Subject of the email 
  
 //        $email_to = ""; // Who the email is too 
  
     
$headers "From: ".$from
  
  
  
     
$semi_rand md5(time()); 
     
$mime_boundary "==Multipart_Boundary_x{$semi_rand}x"
  
     
$headers .= "\nMIME-Version: 1.0\n" 
                 
"Content-Type: multipart/mixed;\n" 
                 
" boundary=\"{$mime_boundary}\""
  
     
$email_message .=  "This is a multi-part message in MIME format.\n\n" .  
                         
"--{$mime_boundary}\n" 
                         
"Content-Type:text/plain; charset=\"iso-8859-1\"\n" 
                        
"Content-Transfer-Encoding: 7bit\n\n" 
     
$text "\n\n"
      
     if (
is_array($datei)) { 
         foreach(
$datei AS $key => $value) { 
             if (
file_exists($value)) { 
                 
$fileatt $value// Path to the file 
                 
$fileatt_type "application/octet-stream"// File Type 
                 
if ($dateiname[$key]) { 
                     
$fileatt_name $dateiname[$key];// Filename that will be used for the file as the attachment 
                 
}else{ 
                     
$fileatt_name basename($value); 
                 } 
              
                 
$file fopen($fileatt,'rb'); 
                 
$data fread($file,filesize($fileatt)); 
                 
fclose($file); 
              
              
                 
$data chunk_split(base64_encode($data)); 
              
                 
$email_message .= "--{$mime_boundary}\n" 
                                   
"Content-Type: {$fileatt_type};\n" 
                                   
" name=\"{$fileatt_name}\"\n" 
                                   
"Content-Disposition: attachment;\n" 
                                   
" filename=\"{$fileatt_name}\"\n" 
                                   
"Content-Transfer-Encoding: base64\n\n" 
                                  
$data "\n\n"
                 
$a++; 
                 if (
$a == count($datei)) { 
                    
$email_message .= "--{$mime_boundary}--\n\n"
                 }else{ 
                    
$email_message .= "--{$mime_boundary}\n"
                 } 
                 unset(
$data); 
                 unset(
$file); 
                 unset(
$fileatt); 
                 unset(
$fileatt_type); 
                 unset(
$fileatt_name); 
            } 
        } 
     }elseif(
$datei) { 
         if (
file_exists($datei)) { 
             
$fileatt $datei// Path to the file 
             
$fileatt_type "application/octet-stream"// File Type 
             
if ($dateiname) { 
                
$fileatt_name $dateiname// Filename that will be used for the file as the attachment 
             
}else{ 
                 
$fileatt_name basename($datei); 
             } 
          
             
$file fopen($fileatt,'rb'); 
             
$data fread($file,filesize($fileatt)); 
             
fclose($file); 
          
          
             
$data chunk_split(base64_encode($data)); 
          
             
$email_message .= "--{$mime_boundary}\n" 
                               
"Content-Type: {$fileatt_type};\n" 
                               
" name=\"{$fileatt_name}\"\n" 
                               
//"Content-Disposition: attachment;\n" . 
                               //" filename=\"{$fileatt_name}\"\n" . 
                               
"Content-Transfer-Encoding: base64\n\n" 
                              
$data "\n\n" 
                               
"--{$mime_boundary}--\n"
             unset(
$data); 
             unset(
$file); 
             unset(
$fileatt); 
             unset(
$fileatt_type); 
             unset(
$fileatt_name); 
        } 
    } 
      
      
     
$ok = @mail($an$email_subject$email_message$headers);  
     echo 
"OK: $ok"

Passiert nix.. Also Mail kommt nie an.

Oder das Script hier, von:
PHP-Grundlagen / E-Mail mit Anhang versenden - Homepage-Total.de
PHP-Code:
<?php
$empfaenger 
"empfaenger@mailadresse.xy"// Empfänger E-Mail Adresse
$betreff "E-Mail mit Anhang"// Betreff

$dateiname "bild.gif"// Dateiname
$dateiname_mail "anhang.gif";

$id md5(uniqid(time()));
$dateiinhalt fread(fopen($dateiname"r"), filesize($dateiname));

 
// Absender Name und E-Mail Adresse
$kopf "From: Manfred Mustermann <meine@mailadresse.xy>\n";
$kopf .= "MIME-Version: 1.0\n";
$kopf .= "Content-Type: multipart/mixed; boundary=$id\n\n";
$kopf .= "This is a multi-part message in MIME format\n";
$kopf .= "--$id\n";
$kopf .= "Content-Type: text/plain\n";
$kopf .= "Content-Transfer-Encoding: 8bit\n\n";
$kopf .= "E-Mail mit Anhang"// Inhalt der E-Mail (Body)
$kopf .= "\n--$id";
// Content-Type: image/gif, image/jpeg, image/png » MIME-Typen - selfHtml.org
$kopf .= "\nContent-Type: image/gif; name=$dateiname_mail\n";
$kopf .= "Content-Transfer-Encoding: base64\n";
$kopf .= "Content-Disposition: attachment; filename=$dateiname_mail\n\n";
$kopf .= chunk_split(base64_encode($dateiinhalt));
$kopf .= "\n--$id--";
mail($empfaenger$betreff""$kopf); // E-Mail versenden
?>
Scripts aus dem Jahre 2000~2005 gehen gar nicht.
Zum Beispiel das hier:
JEX-Treme Forum | PHP Scripts & MYSQL | mail anhang?

Ich nutze PHP 5.2.6, weshalb die alten Geschichten wohl nicht mehr gehen.

Kann mir bitte jemand einen Quellcode geben? Google hab ich jetzt ausgiebig verwendet und das führt irgendwie zu nix, wie ihr ja seht
Komplette PHP-Mailer Packete bitte nicht. Das muss doch auch ohne gehen.
Zu mal ich mit diesen kompletten Packeten nicht ganz so klar komme, glaube ich.

Also, könnt ihr mir bitte helfen und was funktionstüchtiges Posten?
Ich möchte gerne eine Mail versenden.
Übergeben wird von einer anderen PHP-Datei via GET und POST
- Betreff
- Absender
- Empfänger
- Pfad_zu_einer_Datei
- Dateiname


Vielen vielen Dank schon einmal im Voraus. Ihr helft mir damit ganz bestimmt!
SteSte ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 18.02.2009, 10:34  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.847
HPR1974 wird schon bald berühmt werden
Standard

Zitat:
Kann mir bitte jemand einen Quellcode geben?
ganz schön dreist.
setz mal error_reporting(E_ALL);
HPR1974 ist offline  
Alt 18.02.2009, 10:48  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Wenn du phpmailer benutzt, dann musst du dir keine Header zurechtstoppeln und darauf vertrauen, dass du nichts vergessen hast, und du musst auch keine attachements manuell kodieren:

PHP-Code:
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->From   $absenderemail;
$mail->AddReplyTo($absenderemail);
$mail->Sender   $absenderemail;

$mail->FromName $absendername;

$mail->CharSet  =  "utf-8";
$mail->IsHTML(true);

$mail->AddAddress($email);
$mail->Subject $betreffzeile;
$mail->Body   $message_html;
$mail->AltBody  $message_text;

// Attachements
$mail->AddAttachment('./info1.pdf');
$mail->AddAttachment('./info2.pdf');
$mail->AddAttachment('./info3.pdf');


$mail->Send();
$mail->ClearAddresses();
$mail->ClearAttachments(); 
Wolla ist offline  
Alt 18.02.2009, 10:52  
Neuer Benutzer
 
Registriert seit: 16.02.2009
Beiträge: 7
SteSte befindet sich auf einem aufstrebenden Ast
Standard

Ok, die error Anweisung gehört zum debugging. Aber was genau soll ich mit Hilfe dieser Anweisung herausfinden?

Und sry ja, das is schon ein wenig dreist. Aber google ist nicht grade in diesem Moment mein bester Freunde. Alle Scripts die ich ausprobiert habe funktionieren nicht...
Und diese kompletten Mailklassen wie PHP-Mailer und co peil ich einfach nicht, weil ich nicht weiss wie ich die anwenden soll?!

:-/
SteSte ist offline  
Alt 18.02.2009, 10:55  
Neuer Benutzer
 
Registriert seit: 16.02.2009
Beiträge: 7
SteSte befindet sich auf einem aufstrebenden Ast
Standard

Ah ok. Das klingt doch schonmal ziemlich gut.
Wenn ich beim Attachement einen Pfad habe, wie "/Dir1/Dir12/" und einen Dateinamen "Bild.jpg" wie mache ich das dann mit dem Anhang?
Schreibe ich da den kompletten Pfad hin?
Also: "/Dir1/Dir12/Bild.jpg" ?

Vielen vielen Dank schon mal
SteSte ist offline  
Alt 18.02.2009, 10:57  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Zitat:
Schreibe ich da den kompletten Pfad hin?
Also: "/Dir1/Dir12/Bild.jpg" ?
Den Pfad nicht mit einem / beginnen. Richtig wäre t.B.

$mail->AddAttachment('./ordner1/ordner2/info1.pdf');
Wolla ist offline  
Alt 18.02.2009, 11:17  
Neuer Benutzer
 
Registriert seit: 16.02.2009
Beiträge: 7
SteSte befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
// Inhalt aus den Formularen übertragen "Name"
$name $_POST['name'];

// Inhalt aus den Formularen übertragen "Email"
$email $_POST['email'];

// Inhalt aus den Formularen übertragen "Betreff"
$betreff $_POST['betreff'];

// Inhalt aus den Formularen übertragen "Nachricht"
$text $_POST['text']; // Text

require("phpMailer_v2.3/class.phpmailer.php");
$mail = new PHPMailer();

$mail->From   $name
$mail->AddReplyTo($email);
$mail->Sender   $email;

$mail->FromName "beispiel@gmx.de";

$mail->CharSet  =  "utf-8";
$mail->IsHTML(true);

$mail->AddAddress($email);
$mail->Subject $betreff;
$mail->Body   $text;
$mail->AltBody  $text;

// Attachements
$mail->AddAttachment('./Bereiche/Bereich_2/RG/BB/0m/AA/RG_AA_MG_7850.jpg');

$mail->Send();
$mail->ClearAddresses();
$mail->ClearAttachments(); 
Also, Fehlermeldung gibt es nicht, aber passieren tut genauso wenig *grml*
SteSte ist offline  
Alt 18.02.2009, 13:56  
Neuer Benutzer
 
Registriert seit: 16.02.2009
Beiträge: 7
SteSte befindet sich auf einem aufstrebenden Ast
Standard

aus einem anderen Forum gibt es zu dieser Problematik folgenden Fehler:
PHP-Code:
if(!$mail->Send()) {  
   echo 
'Message was not sent.';  
   echo 
'Mailer error: ' $mail->ErrorInfo;  
 } else {  
   echo 
'Message has been sent.';  
 } 
Da gibt es jetzt aber folgende Fehlermeldung
Zitat:
Message was not sent.Mailer error: Could not instantiate mail function.
So, jetzt möchte ich aber nicht mit SMTP arbeiten. Daran wirds wohl wahrscheinlich liegen.

Muss ich jetzt doch wieder weg von den PHP-Mailer Scripten und zurück zum nichtfunktionierenden Code oder gibts Alternativen? *liebfrag*
Das komische ist aber auch dass eins der Scripte schon mal funktioniert hat. Also eines von oben *grml*
SteSte ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
probleme mit Email versand SilferSurver PHP Tipps 2009 0 05.01.2009 21:45
PHP eMail mit CSS moercel PHP Tipps 2008 11 20.12.2008 01:13
Probleme mit abzusendender Email Leicowitz PHP Tipps 2008 17 17.09.2008 08:59
Abfrage ob email adresse schon vorhanden ist TeazY PHP Tipps 2008 10 16.12.2007 12:22
Einbauen Externer Scripts (UMFRAGE) Adminator PHP Tipps 2007 10 05.03.2007 10:32
email decodieren / imap_fetchbody malabarista PHP Tipps 2006 0 19.10.2006 09:53
Links aus HTML-eMail funktionieren nicht. pino PHP Tipps 2006 14 26.06.2006 20:50
Newsletter email abfrage Problem mokus PHP Tipps 2006 7 18.04.2006 16:35
Email Header und Alternativer Text... PHP Tipps 2007 22 10.11.2005 16:38
[Erledigt] automatisch Email PHP Tipps 2005-2 3 26.07.2005 12:53
[Erledigt] doppelte email adressen suchen Datenbanken 9 20.05.2005 19:38
Email aus textarea PHP Tipps 2005 3 14.04.2005 21:37
Wie implementiere ich mein Email Formular? PHP Tipps 2004-2 2 14.11.2004 17:02
Scripts funktionieren online jedoch nicht über Apache! stefan-miti Server, Hosting und Workstations 2 02.09.2004 18:18
Email per PHP formatieren PHP Tipps 2004 4 26.07.2004 09:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
emailscript, email script, php 5.2 mail header mit anhang, php imap_fetchbody multipart emails, phpmailer could not instantiate mail function, gmx php mail script, script e-mail adresse übertragen php, alternativen zu phpmailer, http://www.php.de/php-einsteiger/51984-email-script-s-funktionieren-nicht.html, script email, mail funktioniert im skript, phpmailer gmx could not instantiate mail function.

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum