# PHPMailer funktioniert nicht



## Grunge (10. November 2009)

Hey Leute,

ich habe mir phpmailer runtergeladen und es installiert. Nun gebe ich zum testen ne Email ein und versuch ne Testnachricht zu schicken. Ging nicht. Kam immer ein Fehler. Bis ich SMTP aktiviert habe...Nun gehts doch es kommt folgendes....



> Fatal error: Call to a member function on a non-object in /homepages/12/d302517298/htdocs/cocaine/admin/send.php on line 8



Zeile 8 sieht so aus:


```
$mail->IsSMTP(); //Versand über SMTP festlegen
```

Der ganze Code so:


```
<?php
include "inc_connect.php";
   
   //Klasse einbinden
  require('mailer/class.phpmailer.php');
  //require('mailer/class.smtp.php');
  
  $mail->IsSMTP(); //Versand über SMTP festlegen
  $mail->Host = "smtp.1und1.de "; //SMTP-Server setzen
 
  $mail->SMTPAuth = true;     //Authentifizierung aktivieren
  $mail->Username = "xxxxxxx";  // SMTP Benutzername
  $mail->Password = "xxxxxx; // SMTP Passwort 
  
  //Instanz von PHPMailer bilden
  $mail = new PHPMailer();
 
  //Absenderadresse der Email setzen
  $mail->From = "test@tanmar.info";
  
  //Name des Abenders setzen
  $mail->FromName = "TanMar Tutorials";
  
  //Empfängeradresse setzen
  $mail->AddAddress("meineaddy@web.de");
  
  //Betreff der Email setzen
  $mail->Subject = "Die erste Mail";
 
  //Text der EMail setzen
  $mail->Body = "Hallo! \n\n Dies ist die erste Email mit PHPMailer!";
  
  //EMail senden und überprüfen ob sie versandt wurde
  if(!$mail->Send())
  {
     //$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
     echo "Die Email konnte nicht gesendet werden";
     echo "Fehler: " . $mail->ErrorInfo;
  }
  else
  {
     //$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
     echo "Die Email wurde versandt.";
  }

?>
```

Kennt sich jemand damit aus? Hier ein Tutorial zu phpmailer

http://www.tanmar.info/content/view/36/52/

Danke im Vorraus


GRUß


----------



## Parantatatam (10. November 2009)

Du hast etwas Entscheidendes vergessen: du musst das Objekt erstmal erzeugen:

```
<?php
require('mailer/class.phpmailer.php');

$mail = new PHPMailer(); // Hattest du vergessen

// ...
?>
```


----------



## Grunge (10. November 2009)

ich bin ja ein tollpatsch. Komisch...aber nun kommt dieser Fehler:


```
Die Email konnte nicht gesendet werden Fehler: Could not instantiate mail function.
```

Nicht mal die einfach mail() FUnktion von PHP t. Kommen keine Emails an. UNd er gibt keine Fehlermeldung aus. Trotz error_reporting(E_ALL). . . .Wasn da los?


----------



## Parantatatam (11. November 2009)

Bitte nichts im Ausgangspost ändern, wenn schon Antworten vorhanden sind
So wie du dein Skript jetzt abgeändert hast kann es immer noch nicht funktionieren. Das $mail = new PHPMailer() muss vor das IsSMTP()

EDIT: Ich vermute mal, dass PHPMailer auf die Funktion mail() aufbaut und diese beansprucht ein E-Mail-Programm auf dem Server. Du musst mal nachschauen, ob diese Funktion bei dir verfügbar ist.


----------



## Grunge (11. November 2009)

es steht direkt unter dem require. Wo soll ich das nachschauen? Phpinfo? Wo genau da?


----------



## Maik (11. November 2009)

Moin.





einfach nur crack hat gesagt.:


> Bitte nichts im Ausgangspost ändern, wenn schon Antworten vorhanden sind


Grundsätzlich hast du recht, aber in diesem Fall hat Grunge lediglich die SMTP-Zugangsdaten aus dem Code entfernt.

Schau mal, was unter "PHP Core" für [phpf]sendmail_path[/phpf] eingetragen ist. Ebenso ist ein Blick in die *php.ini* lohnenswert.

Und noch eine Bitte zum Schluß: Bitte vermeide im Forum den Chat-Ausdruck "f-u-n-z-t", da dieser auf der Blacklist steht, und vom System herausgefiltert wird, womit im Topic nur noch ein nichtssagendes "t" stehen geblieben ist.

mfg Maik


----------



## Parantatatam (11. November 2009)

An *Maik*: Die Änderung der Zugangsdaten ist natürlich richtig, aber er hat auch das Erstellen des Objekts eingefügt, was ich ihm erst in meinem Beitrag danach gesagt habe. Somit wirkt mein Beitrag eher verwirrend.


----------



## Da_Chris (11. November 2009)

Also ich würde jetzt gern erstmal noch den code gesamt sehen und vor allem ohne Fehler!
Denn beim aus-x-en hast du ein " vergessen.....
Ausserdem weis ich wo bei dir Zeile 8 ist?


----------



## Grunge (11. November 2009)

Also erstens. Hab ich die x eingefügt damit hr nich alle meine SMTP ZUgangsdaten seht.
Hier nochmal der ganze Code:

```
<?php
error_reporting(E_ALL);
   
   //Klasse einbinden
  require('mailer/class.phpmailer.php');
  $mail = new PHPMailer();
  //require('mailer/class.smtp.php');
  
  $mail->IsSMTP(); //Versand über SMTP festlegen
  $mail->Host = "smtp.1und1.de"; //SMTP-Server setzen
 
  $mail->SMTPAuth = true;     //Authentifizierung aktivieren
  $mail->Username = "info@shaggagroup.de";  // SMTP Benutzername
  $mail->Password = "xxxxxx"; // SMTP Passwort 
  
  //Instanz von PHPMailer bilden
  $mail = new PHPMailer();
 
  //Absenderadresse der Email setzen
  $mail->From = "test@tanmar.info";
  
  //Name des Abenders setzen
  $mail->FromName = "TanMar Tutorials";
  
  //Empfängeradresse setzen
  $mail->AddAddress("benjaminscheuch@web.de");
  
  //Betreff der Email setzen
  $mail->Subject = "Die erste Mail";
 
  //Text der EMail setzen
  $mail->Body = "Hallo! \n\n Dies ist die erste Email mit PHPMailer!";
  
  //EMail senden und überprüfen ob sie versandt wurde
  if(!$mail->Send())
  {
     //$mail->Send() liefert FALSE zurück: Es ist ein Fehler aufgetreten
     echo "Die Email konnte nicht gesendet werden";
     echo "Fehler: " . $mail->ErrorInfo;
  }
  else
  {
     //$mail->Send() liefert TRUE zurück: Die Email ist unterwegs
     echo "Die Email wurde versandt.";
  }

?>
```

Mit diesem Code bekomm ich folgende nette Fehlermeldung



> Die Email konnte nicht gesendet werdenFehler: Could not instantiate mail function.



bei sendmail_path steht folgendes (in beiden Spalten)
/usr/sbin/sendmail -t -i 	
Was hat das zu bedeuten? Danke nochmal für eure Mühen


----------

