php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.04.2005, 08:49  
Gast
 
Beiträge: n/a
Standard PHP-Mailer - Stell mich da irgendwie zu doof an

Ich habe ein Formular erstellt, mit dem ich Daten abfrage und per Mail versende und bisher auch super ging.

Nun hätte ich dazu auch gern noch Mailanhänge. Ich habe mich schlau gemacht und rausgefunden, dass es mit PHP-Mailer 1.72 gehen müßte.

Nur weiß ich jetzt echt nicht, wie ich das Ganze in mein Mail implementieren soll?

Vielleicht kann mir wer auf die Sprünge helfen. Vielleicht geht es ja auch viel einfacher mit boundery oder so ähnlich. In meinem Handbuch über PHP4 steht dazu auch nur, dass man sich im Internet das nötige runterladen soll.

hier mein Formular

PHP-Code:
<?php
<html>
<
head>
<
title>Kontaktformular mit PHP</title>
</
head>
<
body bgcolor="#FF9900">


<
font face="Arial, Helvetica, sans-serif" size="2">[img]../img/kont_text.jpg[/img]</font></p>
<
table border="0" cellpadding="1" cellspacing="2" width="406">
  <
tr
    <
td height="12">[img]../img/kont_anrede.jpg[/img]</td>
    <
td height="12">
      <
select name="select">
        <
option>Herr</option>
        <
option>Frau</option>
        <
option selected>Firma</option>
      </
select>
    </
td>
  </
tr>
  <
form action="kontform_pruef.php" method="post">
    <
tr
      <
td><font face="Arial, Helvetica, sans-serif" size="2">[img]../img/kont_name.jpg[/img]</font></td>
      <
td> <font face="Arial, Helvetica, sans-serif" size="2"
        <
input name="Name" size="30" type="text">
        </
font></td>
    </
tr>
    <
tr
      <
td>[img]../img/kont_person.jpg[/img]</td>
      <
td> <font face="Arial, Helvetica, sans-serif" size="2"
        <
input name="Ansprechperson" size="30" type="text">
        </
font></td>
    </
tr>
    <
tr
      <
td valign="top">[img]../img/kont_anschrift.jpg[/img]</td>
      <
td
        <
textarea name="anschrift" cols="40" rows="3"></textarea>
      </
td>
    </
tr>
    <
tr
      <
td><font face="Arial, Helvetica, sans-serif" size="2">[img]../img/kont_mail.jpg[/img]</font></td>
      <
td> <font face="Arial, Helvetica, sans-serif" size="2"
        <
input name="email" size="30" type="text">
        </
font></td>
    </
tr>
    <
tr
      <
td>[img]../img/kont_tel.jpg[/img]</td>
      <
td><font face="Arial, Helvetica, sans-serif" size="2"
        <
input name="Telefon" size="30" type="text">
        </
font></td>
    </
tr>
    <
tr
      <
td>[img]../img/kont_fax.jpg[/img]</td>
      <
td><font face="Arial, Helvetica, sans-serif" size="2"
        <
input name="Fax" size="30" type="text">
        </
font></td>
    </
tr>
    <
tr
      <
td valign="top">[img]../img/kont_prod.jpg[/img]</td>
      <
td
        <
select name="produkt" size="1">
          <
option>Festabzeichen</option>
          <
option>Pfandmarken</option>
          <
option>Einkaufswagenchips</option>
          <
option>Buttons</option>
          <
option>Gutscheinm&uuml;nzen</option>
          <
option>Beschriftungen</option>
          <
option>Werbemittel</option>
          <
option selected>Sonstige</option>
        </
select>
      </
td>
    </
tr>
    <
tr
      <
td valign="top"><font face="Arial, Helvetica, sans-serif" size="2">[img]../img/kont_anfrage.jpg[/img]</font></td>
      <
td> <font face="Arial, Helvetica, sans-serif" size="2"
        <
textarea cols="40" name="Ihre_Anfrage" rows="5"></textarea>
        </
font></td>
    </
tr>
    <
tr
      <
td>[img]../img/kont_kont.jpg[/img]</td>
      <
td><font face="Arial, Helvetica, sans-serif" size="2">[img]../img/kont_ja.jpg[/img
        <
input name="Kontakt" checked type="radio" value="ja">
        [
img]../img/kont_nein.jpg[/img
        <
input name="Kontakt" type="radio" value="nein">
        </
font></td>
    </
tr>
    <
tr
      <
td>[img]../img/kont_newsl.jpg[/img]</td>
      <
td> <font face="Arial, Helvetica, sans-serif" size="2"> [img]../img/kont_ja.jpg[/img
        <
input checked name="Newsletter" type="checkbox" value="ja">
        </
font></td>
    </
tr>
    <
tr
      <
td align="center" colspan="2"><font face="Arial, Helvetica, sans-serif" size="2"
        <
input name="Send" type="submit" value="Abschicken">
        <
input name="Reset" type="reset" value="Löschen">
        </
font></td>
    </
tr>
  </
form>
</
table>
</
body>
</
html

?>
Und hier mein Sendmail.

PHP-Code:
<?php

<?php

$Empfaenger 
"juergen@wittmanns-online.de";

if(
$_REQUEST['Send'])
{
    if(empty(
$_REQUEST['Ansprechperson']) && (empty($_REQUEST['anschrift'])) && (empty($_REQUEST['email'])) && (empty($_REQUEST['Telefon'])) && (empty($_REQUEST['Fax'])) && (empty($_REQUEST['Ihre_Anfrage'])) || (empty($_REQUEST['Name'])))
    {
        echo
"

</p>

</p>Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a>
               - geben Sie ihren Namen an, und füllen mindestens ein Kontaktfeld * aus!"
;
    }

     else
    {
        
$Mailnachricht "Sie haben folgenden Nachricht erhalten: \n\n";
        while(list(
$Formularfeld$Wert) = each($_REQUEST))
        {
            if(
$Formularfeld != "Send" && !empty($Formularfeld))
            {
                
$Mailnachricht .= $Formularfeld ": " $Wert "\n";
            }
        }
        
$Mailnachricht .= "\nDatum/Zeit: ";
        
$Mailnachricht .= date("d.m.Y H:i:s");
        
$Mailbetreff "Anfrage von der Kontaktseite ihrer Homepage";
        
$Mailbetreff .= $_REQUEST['Betreff'];
        
mail($Empfaenger$Mailbetreff$Mailnachricht"From: " $_REQUEST['Email']);
        echo
"

</p>

</p>Vielen Dank für Ihre Anfrage!

</p>

</p>
              Wir werden sie umgehend beantworten."
;
    }
}
else
{
    echo 
"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a href=\"kontform.php\">Seite</a>.";
}

?>


?>
So viel ich hier rauslesen konnte, muß ich noch ein Feld mit Upload ins Formular einbauen und das ganze wieder per Variable übergeben. Aber dann steh ich auf dem Schlauch.

Gruß

Jürgen
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.04.2005, 09:01  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

http://www.php.net/mail
schau dir mal die kommentare an, da findest du mit dem stichwort attachment einträge die sich damit beschäftigen. ansosnten findest du hier:

http://www.google.de/search?q=php+ma...DE:eek:fficial

zig anleitungen, tutorials etc.

oder du benutzt mal die boardsuche, das wurde nämlich schon mehrfach gefragt.

oder in den FAQ'S:

http://php-faq.de/q/q-mail-attachment.html

mfg
robo47
robo47 ist offline  
Alt 29.04.2005, 09:33  
Gast
 
Beiträge: n/a
Standard

genau mit dieser Antwort habe ich gerechnet. Wenn ich hier poste, dann habe ich bereits die SUCHE verwendet und auch schon einige Tests an meinem localhost gemacht - komme aber leider nicht weiter.

Gruß

Jürgen
 
Alt 29.04.2005, 09:48  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Zitat:
So viel ich hier rauslesen konnte, muß ich noch ein Feld mit Upload ins Formular einbauen und das ganze wieder per Variable übergeben. Aber dann steh ich auf dem Schlauch.
dann mach doch erstmal dass und dann nutzte zum testen ne text-datei die du statisch erstmal anhängst, ein "ich komm nicht weiter" ist für mcih keien beschreibung eiens problems oder eine frage. wenn du jetzt konkret sagst -> die mail geht raus, aber das attachmant kommt falsch an, okay, dann kann man dir da helfen.

wenn ich dann aber sowas lese:

Zitat:
ch habe mich schlau gemacht und rausgefunden, dass es mit PHP-Mailer 1.72 gehen müßte.
ja? ich seh da im deinem source 0 dass du es mal getestest hast, eigebaut hast oder sonstwas .....

vieleicht beschreibst du mal genau, was dein problem ist, was für eine lösung du suchst, bzw was nicht funktioniert.

abgesehen davon, lokales testen mit mails würde ich aufpassen, die chance dass die mail im spamfilter eiens providers hängen bleibt, nicht angenommen wird oder sonstwas ist hoch.


mfg
robo47
robo47 ist offline  
Alt 29.04.2005, 11:56  
Gast
 
Beiträge: n/a
Standard

Hallo robo47,

ich habe also ein neues Feld eingebaut in mein Formular namens "file" und sende es mit ab.

in meinem Sendmail füge ich die Zeilen ein von phpmailer

PHP-Code:
<?php
require("class.phpmailer.php");
$mail->SetLanguage("de");

$mail = new PHPMailer();

$mail->IsSMTP();                                      // set mailer to use SMTP
$mail->Host "smtp1.kontent.de";  // specify main and backup server
$mail->SMTPAuth true;     // turn on SMTP authentication
$mail->Username "";  // SMTP username
$mail->Password ""// SMTP password

$mail->From "from@example.com";
$mail->FromName "Mailer";
$mail->AddAddress("josh@example.net""Josh Adams");
$mail->AddAddress("ellen@example.com");                  // name is optional
$mail->AddReplyTo("info@example.com""Information");

$mail->WordWrap 50;                                 // set word wrap to 50 characters
$mail->AddAttachment("/var/tmp/file.tar.gz");         // add attachments
$mail->AddAttachment("/tmp/image.jpg""new.jpg");    // optional name
$mail->IsHTML(true);                                  // set email format to HTML

$mail->Subject "Here is the subject";
$mail->Body    "This is the HTML message body [b]in bold![/b]";
$mail->AltBody "This is the body in plain text for non-HTML mail clients";

if(!
$mail->Send())
{
   echo 
"Message could not be sent. 

"
;
   echo 
"Mailer Error: " $mail->ErrorInfo;
   exit;
}

echo 
"Message has been sent";

?>
Muß ich nun die Variablen im obigen Code ändern, oder muß ich die Einstellungen im zugehörigen class.phpmailer.php File machen. Oder wozu dient mir das?

Für eine Hilfestellung wäre ich dankbar.

Gruß

Jürgen
 
Alt 29.04.2005, 12:37  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

1) verarbeitest du den upload überhaupt irgendwo?

2) ein feld names file oder vom typ file?

3) bitte nach möglichkeit bei codeänderungen immer den aktuellen quellcode komplett posten, auch formulare etc, desweiteren:

error-reporting
Zum testen von Scripts setzt man normalerweise am anfang des scripts (oder direkt in einer config-datei die immer Includet wird)
PHP-Code:
error_reporting(E_ALL); 
damit werden dann alle Fehler ausgegeben.
Mögliche Fehler die dann auftreten und wie man sie beheben kann:
Notice: Use of undefined constant ...
Notice: Undefined variable ...

Zitat:
Muß ich nun die Variablen im obigen Code ändern, oder muß ich die Einstellungen im zugehörigen class.phpmailer.php File machen. Oder wozu dient mir das?
von ner fertigen klasse lässt man die finger, wenn dann muss man die variablen und die übergaben an die klasse ändern.

mfg
robo47
robo47 ist offline  
Alt 29.04.2005, 13:14  
Gast
 
Beiträge: n/a
Standard

Hallo,

ich bekomme den Filenamen rüber in mein sendmail mit folgendem Befehl:

PHP-Code:
<?php
 
if($_FILES['file']!="none"){
  
//Falls ein file angegeben ist, dieses hochladen
  // Von woher ist festgelegt in $source_pfad
  
$filename=$_FILES['file']['name'];
  echo 
$filename;
}

?>
wenn ein File ausgewählt wurde, dann muß ich das sicherlich erst mal ins Temp hochladen, oder? So habe ich ja nur den Namen des Files.

Dann muß ja noch irgendwie dem phpmailer sagen, was er zu tun hat, wenn ich im class-file nichts ändern soll.

Irgendwie liegt es meiner Ansicht nach an diesen Zeilen, die ich noch einbauen muß.

Hier mein sendmail:



PHP-Code:
<?php
<?php

$Empfaenger 
"juergen.wittmann@wacker.com";

if(
$_REQUEST['Send'])
{
    if(empty(
$_REQUEST['Ansprechperson']) && (empty($_REQUEST['anschrift'])) && (empty($_REQUEST['email'])) && (empty($_REQUEST['Telefon'])) && (empty($_REQUEST['Fax'])) && (empty($_REQUEST['Ihre_Anfrage'])) || (empty($_REQUEST['Name'])))
    {
        echo
"

</p>

</p>Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a>
               - geben Sie ihren Namen an, und füllen mindestens ein Kontaktfeld * aus!"
;
    }

     else
    {
        if(
$_FILES['file']!="none"){
  
//Falls ein file angegeben ist, dieses hochladen
  // Von woher ist festgelegt in $source_pfad
  
$filename=$_FILES['file']['name'];
  echo 
$filename;
}





        
$Mailnachricht "Sie haben folgenden Nachricht erhalten: \n\n";
        while(list(
$Formularfeld$Wert) = each($_REQUEST))
        {
            if(
$Formularfeld != "Send" && !empty($Formularfeld))
            {
                
$Mailnachricht .= $Formularfeld ": " $Wert "\n";
            }
        }
        
$Mailnachricht .= "\nDatum/Zeit: ";
        
$Mailnachricht .= date("d.m.Y H:i:s");
        
$Mailbetreff "Anfrage von der Kontaktseite ihrer Homepage";
        
$Mailbetreff .= $_REQUEST['Betreff'];
        
$Mailfile $_REQUEST['file'];
        
        
        
mail($Empfaenger$Mailbetreff$Mailnachricht"From: " $_REQUEST['Email']);
        
$Mailfile;
        echo
"

</p>

</p>Vielen Dank für Ihre Anfrage!

</p>

</p>
              Wir werden sie umgehend beantworten."
;
    }
}
else
{
    echo 
"Ein Fehler ist aufgetreten. Bitte gehen Sie auf diese <a href=\"kontform.php\">Seite</a>.";
}

?>

?>
und hier nochmals der phpmailer, der anstatt obigen sendmail oder zusammen damit verwendet werden soll/muß.

PHP-Code:
<?php
<?php 
require("class.phpmailer.php"); 
$mail->SetLanguage("de"); 

$mail = new PHPMailer(); 

$mail->IsSMTP();                                      // set mailer to use SMTP 
$mail->Host "smtp1.kontent.de";  // specify main and backup server 
$mail->SMTPAuth true;     // turn on SMTP authentication 
$mail->Username "";  // SMTP username 
$mail->Password ""// SMTP password 

$mail->From "from@example.com"
$mail->FromName "Mailer"
$mail->AddAddress("josh@example.net""Josh Adams"); 
$mail->AddAddress("ellen@example.com");                  // name is optional 
$mail->AddReplyTo("info@example.com""Information"); 

$mail->WordWrap 50;                                 // set word wrap to 50 characters 
$mail->AddAttachment("/var/tmp/file.tar.gz");         // add attachments 
$mail->AddAttachment("/tmp/image.jpg""new.jpg");    // optional name 
$mail->IsHTML(true);                                  // set email format to HTML 

$mail->Subject "Here is the subject"
$mail->Body    "This is the HTML message body [b]in bold![/b]"
$mail->AltBody "This is the body in plain text for non-HTML mail clients"

if(!
$mail->Send()) 

   echo 
"Message could not be sent. 

"

   echo 
"Mailer Error: " $mail->ErrorInfo
   exit; 


echo 
"Message has been sent"

?> 

?>
Gruß

Jürgen
 
Alt 16.05.2005, 12:57  
Gast
 
Beiträge: n/a
Standard

Hallo Jürgen,

ich würd das folgendermaßen angehen:
als erstes das Form Tag erweitern mit enctype="multipart/form-data" .. sprich dein Formtag muss dann so ungefähr aussehen:


PHP-Code:
<form name="dein_form_name" method="post" action="kontform_pruef.php" enctype="multipart/form-data"
und das Dateifeld:
PHP-Code:
<input type="file" name="ATTACHMENT"
dann überprüfst du ob die datei hochgeladen wurde:

PHP-Code:
<?php
if(is_uploaded_file($_FILES['ATTACHMENT']['tmp_name'])) 
{
  
// ja es wurde hochgeladen
  // hier baust du dann die klasse ein
  
require("class.phpmailer.php");
  
$mail->SetLanguage("de");

  
$mail = new PHPMailer();

  
$mail->IsSMTP();                                      // set mailer to use SMTP
  
$mail->Host "smtp1.kontent.de";  // specify main and backup server
  
$mail->SMTPAuth true;     // turn on SMTP authentication
  
$mail->Username "";  // SMTP username
  
$mail->Password ""// SMTP password

  
$mail->From "from@example.com";
  
$mail->FromName "Mailer";
  
$mail->AddAddress("josh@example.net""Josh Adams");
  
$mail->AddAddress("ellen@example.com");                  // name is optional
  
$mail->AddReplyTo("info@example.com""Information");

  
$mail->WordWrap 50;                                 // set word wrap to 50 characters

  // hier legen wir fest dass das hochgeladene file angehaengt und mit dem original
  // namen versendet werden soll:
  
$mail->AddAttachment($_FILES['ATTACHMENT']['tmp_name'], $_FILES['ATTACHMENT']['name']);    // optional name

  
$mail->IsHTML(true);                                  // set email format to HTML

  
$mail->Subject "Here is the subject";
  
$mail->Body    "This is the HTML message body [b]in bold![/b]";
  
$mail->AltBody "This is the body in plain text for non-HTML mail clients";

  if(!
$mail->Send())
  {
     echo 
"Message could not be sent. 

"
;
     echo 
"Mailer Error: " $mail->ErrorInfo;
     exit;
  }

echo 
"Message has been sent";
}
else
{
  
// die datei wurde nicht hochgeladen
  // du leitest zurueck zu deiner eingabemaske
  
header("location: index.php");
}
?>
habs nicht getestet sollte aber funktionieren.

gruß Arne
 
Alt 16.05.2005, 13:57  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum.

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen.

moved to PHP - Anfänger
__________________
mod = master of disaster
Waq ist offline  
Alt 16.05.2005, 14:07  
Gast
 
Beiträge: n/a
Standard

Hier mal ein einfaches Anwendungsbeispiel für phpmailer:
http://test.php-help.info/phpmailer/ (Quelltext wird angezeigt)
 
 


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
Stell deine Seite vor BERSIM Off-Topic Diskussionen 5 29.04.2008 22:13
Mailer Error: Language string failed to load: recipients_fai Soese PHP Tipps 2008 9 20.02.2008 16:15
PHP MAILER UND MEHRERE PDF attachen sasger PHP Tipps 2007 10 05.07.2007 12:46
[Erledigt] Im eigenen Mailer gehen LFs in im Atachment verloren PHP-Fortgeschrittene 4 03.06.2006 15:02
Mailer Error: Language string failed to load: instantiate HaraDej PHP Tipps 2006 3 15.05.2006 13:24
Wie stell ich das am besten an? mar8125 Datenbanken 4 19.02.2006 21:36
einfacher PHP Styleswitcher - ich bin zu doof PHP Tipps 2007 12 27.11.2005 15:30
Wieso sendet dieser Mailer nicht? PHP Tipps 2007 2 07.11.2005 14:56
Mailer PHP Tipps 2005-2 16 09.07.2005 15:33
If (PC=on) umleitung auf PC|Wie stell ich´s an ? PHP Tipps 2005 27 10.04.2005 21:36
PHP im HTML - Bin ich zu doof für XAMPP? PHP Tipps 2005 2 25.03.2005 17:38
Eigener SMTP Mailer [FROM] Problem Paulo PHP Tipps 2005 4 22.03.2005 08:40
Deutschland zu Doof zum Gewinnen! Off-Topic Diskussionen 9 21.06.2004 22:58
Mailer mit Empfänger-Auswahl via Menü PHP Tipps 2004 5 13.06.2004 20:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zu doof für php?, einfacher php mailer, newsletter mit empfängerauswahl php script, phpmailer radio button, could not instantiate mail function phpmailer, phpmailer could not instantiate mail function, phpmailer kontent.de, fehlermeldung bei phpmailer undefined variable header, formular an phpmailer übergeben, phpmailer undefined variable from, could not instantiate mail function. phpmailer, php-kontaktformular mit empfängerauswahl, empfängerauswahl select, radiobutton in phpmailer ausgeben, phpmailer arial, undefined variable: mail_body

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:21 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.