# Emails mit php versenden



## FP4Lisa (15. November 2005)

Hallo,
 ich habe ein Skript geschrieben um mit php Emails zu versenden. Der Code scheint soweit in Ordnung zu sein, nur bekomme ich immer folgenden Fehler:


```
Warning:  mail() [function.mail]: Failed to connect to mailserver 
 at "localhost" port 25, verify your "SMTP" and "smtp_port" setting 
 in php.ini or use ini_set() in 
 G:\Server\xampp\htdocs\buddelsand\testemail.php on line 15
```
 
 Ich habe auch schon in die php.ini geschaut und kann da SMTP und SMTP_Port ändern. Nur leider habe ich keine Ahnung wie das aussehen muss damit es funktioniert. Kann es mir eventuell jemand erklären was da rein muss?


----------



## BSA (15. November 2005)

Versuchst du das ganze lokal und hast keinen Mailclient oder Server oder wie auhc immer man das nennt installiert? Dann Funktioniert da snicht, du musst erst nen Mailserver aufsetezn, ich glaube Hamster oder so ist bspw. einer! Versuchs mal online, dann klappt es sicherlich!

Gruß BSA


----------



## FP4Lisa (15. November 2005)

Also ich habe einen Xamp Server, starte das Skript also schon online.


----------



## BSA (15. November 2005)

Ja dann musst du aber noch nen SMTP Server installieren, ich glaube Xampp bringt auch sowas mit im Packet, aber musst du mal in der Doku gucken!


----------



## Dr Dau (15. November 2005)

Hallo!

XAMPP bringt "Mercury Mail" mit sich, nur wird dieser Server nicht automatisch gestartet.
Frage mich aber nicht wie "Mercury Mail" konfiguriert wird.
So weit ich weiss, steht darüber auch nichts auf www.apachefriends.org.
Du solltest also mal auf www.pmail.com schauen oder über Google suchen.

Gruss Dr Dau


----------



## FP4Lisa (15. November 2005)

Mhmm schöne Suppe habe ich mir da eingebrockt.

 Also soweit hast du recht, beim Xamp ist ein MailServer mit drinnen, MercuryMail in sattem Englisch, grrrr, dazu bin ich ja nun wieder viel zu bequem. Zudem ist das Programm riesig. 
 Wo ich doch eigentlich nur was brauche wo ich meinen pop und smtp server eingebe und die mails dann darüber versendet werden oder geht das nicht so einfach?

 @Dau: Hehe ja genau, frag mich nicht wie es Konfiguriert wird, das ist ja ein Walfischprogramm, viel zu stressig für die kleinen Fische die ich versenden möchte. ;o)

 Gibt es da nicht etwas kleineres ... leichteres ... , denn was soll ich da so ein riesen Prog am laufen haben, wenn ich nur einen Schnipsel davon nutze.

 SO HAB MIR NUN MAL DEN HAMSTER DRAUFGEHAUEN -> GESPANNT BIN


----------



## Dr Dau (15. November 2005)

Mich schrecken ja schon die 1.000 Fenster (nicht gezählt  ) von Mercury Mail ab.
Ob es was kleineres, leichteres oder gar besseres gibt, kann ich dir nicht sagen.
Ich hatte XAMPP nur mal irgendwann "drauf geklatscht" um ein Script unter Windows testen zu können.
Ansonsten habe ich halt Linux als Server laufen. 

Hast Du den Hamter draufgehauen oder hast Du auf den Hamster gehauen?!


----------



## FP4Lisa (15. November 2005)

Hihi Dau, habe erst den Hamster draufgehauen und dann verhauen, damit er tut was ich möchte. Aber jetzt geht es schon fast ohne Zicken.

 Danke euch schon mal für die Hilfe!

 Habe nur das Problem das er zwar die Emails vom Skript bekommt und dann auch weiterleitet an den SMTP, nur bevor er weiterleitet muss ich immer klicken und das muss ich noch abschaffen. AUTOMATISIERT DEN HAMSTER  *ggg*


----------



## jaegerschnitzel (17. Januar 2008)

ich habe dieses tutorial gesehen
http://www.tutorials.de/forum/php-tutorials/231819-emails-mit-php-erstellen.html

kann mir jemand kurz ein beispiel machen wie ich nun mit der Mail-funktion von php und dieser klasse eine mail verschicken kann?


----------



## Radhad (17. Januar 2008)

1. Frage: Mailserver ist installiert und konfiguriert?
2. Frage: noch nie OOP benutzt?

```
require_once('path/to/email-class.php');
// Parameter inder richtigen Reihenfolge angeben!
$from = 'from@eample.com';
$to = 'to@example.com';
$subject = 'This is the subject!';
$myEmail = new email($from, $to, $subject, 'Body Text wie: Hallo und herzlich willkommen!');
mail($to, $subject, $myEmail->composemail());
```
Das war's schon  Du kannst die EMail Klasse auch erweitern, dass sie die EMail direkt selber rausschickt.


Evtl. hat der Autor Dennis Wronka schon eine neuere Version auf seiner Webseite veröffentlicht.


----------



## jaegerschnitzel (17. Januar 2008)

ok danke dir ich werds mal testen

1) ja der mailserver funktioniert
2) nein noch nie


----------



## jaegerschnitzel (17. Januar 2008)

ok ich habe doch noch eine frage
da ich mein skript erst lokal testen möchte und keinen mailserver habe möchte ich die generierte email ausgeben lassen

habs bisher nicht geschafft, liegt wohl daran dass ich mich mit oop nicht auskenne^^


EDIT: ich habs so gelöst ist das ok?
echo $myEmail->composemail();

Noch ne Frage: Wenn ich nen Anhang hinzufügen will funktionierts nicht. Es kommt kein fehler sonder er bleibt leer. Wie muss ich das mit dem Anhang machen?


----------



## Radhad (17. Januar 2008)

Wenn im gleichen Verzeichnis wie deine PHP Datei der Anhang liegt, geht das wie folgt:

```
$myEmail->addattachement('anhang.pdf');
```
Natürlich vor composemail() ausführen


----------



## jaegerschnitzel (17. Januar 2008)

sorry leider funktioniert das nicht so wirklich, bisher habe ich folgendes:


```
$kunde = 'test';
$subject = "$kunde";

$body = 'Body Text wie: Hallo und herzlich willkommen!';
$attachedfiles = 'TODO.txt';
$myEmail = new email($from, $to, $subject, $body);
mail($to, $subject, $myEmail->composemail());
```

könntest du mir bitte die ergänzung da dazu machen? wäre nett!
und ich verspreche dass ich mir jetzt selber mal oop anschaue


----------



## jaegerschnitzel (18. Januar 2008)

*na kann mir keiner helfen?*


----------



## jaegerschnitzel (20. Januar 2008)

bitte ich schaff das nicht alleine
hab schon 2 stunden rumprobiert...


----------



## Radhad (21. Januar 2008)

Eine Fehlerbeschreibung wäre gut!


```
$kunde = 'test'; // der taucht ja garnicht mehr weiter unten auf
$subject = "$kunde"; // unsauber
$subjekt = $kunde; // schon viel besser!

$body = 'Body Text wie: Hallo und herzlich willkommen!'; // sieht gut aus
$attachedfiles = 'TODO.txt'; // hmm... existiert die Datei?
$myEmail = new email($from, $to, $subject, $body); // das sollte ja gehen
echo '<pre>';
var_dump($myEMail); // Schau dir das mal an
echo '</pre>'
mail($to, $subject, $myEmail->composemail()); // Hier sollte er jan e E-Mail rausschicken. Falls nicht, könnte es ein Problem mit dem attachement sein.
```
Notfalls wende dich doch direkt an Dennis Wronka, den Autor des Tutorials


----------



## jaegerschnitzel (25. Januar 2008)

danke jetzt klappts 

hab noch ein anderes problem
bin auf nem linux rechner und das 2te script, also smtpconnection.class.php funktioniert nicht wirklich
es wird nie ne mail verschickt und als return kommt false
obwohl alles richtig eingestellt ist

kann es sein dass ich irgendwelche ports oder sonstiges freigeben muss?


----------

