Autor |
Nachricht |
mauer-design
Threadersteller
Dabei seit: 19.04.2007
Ort: -
Alter: 42
Geschlecht:
|
Verfasst Do 24.09.2009 15:40
Titel phpmailer: 2 emails mit verschiedenem inhalt. |
|
|
Hi ich möchte gerne mit einem Formular 2 Emails mit verschiedenm Inhalt an verschiedene Adressen versenden.
Ausgangspunkt: Ein Kunde Soll ein Anfrage stellen und eine Email erhalten inkl. einem angehängten PDF (in diesem Fall ein Vertrag mit Mietgebühren). Der Vermieter soll lediglich die Daten in entsprechend aufgearbeiteter Form erhalten, also kein Anhang usw...
Daher fällt der Befehl "$mail->AddAdress" weg. Damit füge ich zwar eine 2. Adresse hinzu, die aber den gleiche Email erhält.
Ich muss daher irgendwie einen 2 Mailer starten!? Kann mir einer Helfen?
Code: |
<?php
require("class.phpmailer.php"); // Phpmailer einbinden
$mail = new PHPMailer(); // Neue Mailer-Klasse starten
$mail->IsSMTP(); // Phpmailer auf SMTP stellen
$mail->SMTPAuth = true; // SMTP Authentication definieren
# ------------------------ #
# CONFIG
# ------------------------ #
$mail->SMTPDebug = 1;
$mail->Host = "meinhost.de"; // SMTP Host
$mail->Username = "mein@emailuser.de"; // SMTP Benutzername
$mail->Password = "meinpasswort"; // SMTP Passwort
$mail->From = $_POST['name']; // Angezeigte Absenderadresse
$mail->FromName = $_POST['email']; // Angezeigter Absendername
$mail->AddAddress("mein@emailuser.de"); // Empfängeradresse
$mail->SetLanguage("de", "language/"); // Sprache der verschickten Email
$mail->WordWrap = 50; // Wortumbruch nach x Zeichen
$mail->IsHTML(true); // Email als HTML
$mail->CharSet = 'iso-8859-1'; // Kodierung der Email festlegen
$mail->Subject = "Allgemeine Anfrage über Website"; // Betreff der Email
# ------------------------ #
# END CONFIG
# ------------------------ #
$body = '<h3>Allgemeine Anfrage</h3>
<p>Inhalt der Email staht dann hier</p>
';
$mail->Body = $body;
$mail->AltBody = "Bitte nutzen Sie zur Anzeige dieser Email einen HTML-faehigen Email Client";
if(!$mail->Send())
{
header('Location: ok.html'); // Wenn ein Fehler auftritt
}
else
{
header('Location: error.html'); // Wenn die Email verschickt wurde
}
?>
|
Zuletzt bearbeitet von mauer-design am Do 24.09.2009 15:41, insgesamt 1-mal bearbeitet
|
|
|
|
|
choise
Dabei seit: 01.02.2007
Ort: Würzburg
Alter: 35
Geschlecht:
|
Verfasst Do 24.09.2009 15:43
Titel
|
|
|
kleiner denkanstoß:
Code: |
$mail_zwo = new PHPMailer();
$mail_zwo->IsSMTP();
$mail_zwo->SMTPAuth = true;
$mail_zwo->AddAddress("mein@emailuser.de");
|
|
|
|
|
|
Anzeige
|
|
|
mauer-design
Threadersteller
Dabei seit: 19.04.2007
Ort: -
Alter: 42
Geschlecht:
|
Verfasst Do 24.09.2009 16:43
Titel
|
|
|
Hi Choise,
danke für deine schnelle Antwort. Denke das hilgt mir schonmla weiter.
Kannst du mir viellcith noch sagen, wo ich das dfann platzieren soll/muss?
Der SMTP Server kann und soll ja gelich bleiben oder muss ich dann zwingend eine neue Instanz ($mail_zwo = new PHPMailer(); ) mit allen varibalen öffnen?
er soll ja erst nachdm beide emails erfolgreich verschickt werden auf die ok.html springen.
Momentan nutze ich folgendes script:
Code: |
<?php
require("class.phpmailer.php"); // Phpmailer einbinden
$mail = new PHPMailer(); // Neue Mailer-Klasse starten
$mail->IsSMTP(); // Phpmailer auf SMTP stellen
$mail->SMTPAuth = true; // SMTP Authentication definieren
# ------------------------ #
# CONFIG
# ------------------------ #
$mail->SMTPDebug = 1;
$mail->Host = "meinhost.de"; // SMTP Host
$mail->Username = "mein@emailuser.de"; // SMTP Benutzername
$mail->Password = "meinpasswort"; // SMTP Passwort
$mail->From = $_POST['name']; // Angezeigte Absenderadresse
$mail->FromName = $_POST['email']; // Angezeigter Absendername
$mail->AddAddress("mein@emailuser.de"); // Empfängeradresse
$mail->SetLanguage("de", "language/"); // Sprache der verschickten Email
$mail->WordWrap = 50; // Wortumbruch nach x Zeichen
$mail->IsHTML(true); // Email als HTML
$mail->CharSet = 'iso-8859-1'; // Kodierung der Email festlegen
$mail->Subject = "Email 1"; // Betreff der Email
# ------------------------ #
# END CONFIG
# ------------------------ #
$body = '<h3>Allgemeine Anfrage</h3>';
$mail->Body = $body;
$mail->AltBody = "Bitte nutzen Sie zur Anzeige dieser Email einen HTML-faehigen Email Client";
// Neue Instanz
require("class.phpmailer.php"); // Phpmailer einbinden
$mail2 = new PHPMailer(); // Neue Mailer-Klasse starten
$mail2->IsSMTP(); // Phpmailer auf SMTP stellen
$mail2->SMTPAuth = true; // SMTP Authentication definieren
# ------------------------ #
# CONFIG 2
# ------------------------ #
$mail2->SMTPDebug = 1;
$mail2->Host = "meinhost.de"; // SMTP Host
$mail2->Username = "mein@emailuser.de"; // SMTP Benutzername
$mail2->Password = "meinpasswort"; // SMTP Passwort
$mail2->From = $_POST['name']; // Angezeigte Absenderadresse
$mail2->FromName = $_POST['email']; // Angezeigter Absendername
$mail2->AddAddress("mein@emailuser.de"); // Empfängeradresse
$mail2->SetLanguage("de", "language/"); // Sprache der verschickten Email
$mail2->WordWrap = 50; // Wortumbruch nach x Zeichen
$mail2->IsHTML(true); // Email als HTML
$mail2->CharSet = 'iso-8859-1'; // Kodierung der Email festlegen
$mail2->Subject = "Email 2"; // Betreff der Email
# ------------------------ #
# END CONFIG 2
# ------------------------ #
$body2 = '<h3>Allgemeine Anfrage</h3>';
$mail2->Body = $body2;
$mail2->AltBody = "Bitte nutzen Sie zur Anzeige dieser Email einen HTML-faehigen Email Client";
if(!$mail->Send())
{
header('Location: ../index.php?site=kontakt_error'); // Wenn ein Fehler auftritt
}
else
{
header('Location: ../index.php?site=kontakt_ok'); // Wenn die Email verschickt wurde
}
?>
|
Das verursacht aber folgenden Fehler:
Code: |
Fatal error: Cannot redeclare class phpmailerException in /var/www/meinesite/httpdocs/class.phpmailer.php on line 2072
|
Zuletzt bearbeitet von mauer-design am Do 24.09.2009 17:04, insgesamt 2-mal bearbeitet
|
|
|
|
|
pRiMUS
Dabei seit: 09.09.2003
Ort: Vienna
Alter: 48
Geschlecht:
|
Verfasst Fr 25.09.2009 09:27
Titel
|
|
|
eigentlicg brauchst du keine 2. instanz der klasse erstellen. einfach nach dem absenden der ersten mail die nötigen daten wie smtp, empfänger, topic usw. ändern und mit send() ein 2. mal senden.
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Fr 25.09.2009 10:23
Titel
|
|
|
Und vor allem musst du die Klasse auch nicht ein zweites mal einbinden ...
|
|
|
|
|
mauer-design
Threadersteller
Dabei seit: 19.04.2007
Ort: -
Alter: 42
Geschlecht:
|
Verfasst Fr 25.09.2009 14:14
Titel
|
|
|
Hi Primus "einfach" ist es nicht, sonst würd ich nich t fragen. ich hab mit phpmailer bisher immer nur eine email versendet.
was müsste ich denn an meinem scripot genau ändern, um eine 2 emial ohne ahang an mich zu senden?
du meinste ja das ich $mail2 nicht benötige. aber wie definiere ich denn inhalt und empfänger der 2. email?
und benötige ich dann nicht eine schleife?
Ich möchte wirklich incht nerven! Vielen Dank für jede Hilfe!!!
|
|
|
|
|
pRiMUS
Dabei seit: 09.09.2003
Ort: Vienna
Alter: 48
Geschlecht:
|
Verfasst Fr 25.09.2009 14:28
Titel
|
|
|
Code: |
<?php
$mail = new phpmailer();
// 1. mail
$mail->text = "bla";
$mail->subject = "bla";
$mail->empfänger = "ich@ich.de";
$mail->send();
// 2.mail
$mail->text = "bla";
$mail->subject = "bla";
$mail->empfänger = "ich@ich.de";
$mail->send();
// oder von mir aus auch mit ner schleife
for($i=0; $i<=10; $i++)
{
$mail->text = "bla";
$mail->subject = "bla";
$mail->empfänger = "ich@ich.de";
$mail->send();
}
?>
|
die genauen methoden weiss ich ausm kopp natürlich nicht, aber mit dem schnippsel solltest dir jetzt selbst zu helfen wissen. wegend er empfänger, da gibts glaub ich auch ne methode die so ähnlich heisst wie "clearrecipients()" oder so, die dann die empfänger wieder zurücksetzt, ansonsten kann es sein, das die empfänger einfach ergänzt werden.
Zuletzt bearbeitet von pRiMUS am Fr 25.09.2009 14:29, insgesamt 1-mal bearbeitet
|
|
|
|
|
mauer-design
Threadersteller
Dabei seit: 19.04.2007
Ort: -
Alter: 42
Geschlecht:
|
Verfasst Sa 26.09.2009 14:14
Titel
|
|
|
Ich habe nun dieses Script gebastelt, aber es passiert nichts. ich bekomme auch keine Fehlermeldung, lediglich eine weiße seite!? Ich checks nichts und das Manual vom PHPmailer ist auch niht wirklich hilfreich...
Code: |
<?php
// Konfiguration
require("class.phpmailer.php"); // Phpmailer einbinden
$mail = new PHPMailer(); // Neue Mailer-Klasse starten
$mail->IsSMTP(); // Phpmailer auf SMTP stellen
$mail->SMTPAuth = true; // SMTP Authentication definieren
$mail->SMTPDebug = 1; // Debugging einstellen
$mail->Host = "meinhost"; // SMTP Host
$mail->Username = "mein@emailuser.de"; // SMTP Benutzername
$mail->Password = "meinpasswort"; // SMTP Passwort
$mail->SetLanguage("de", "language/"); // Sprache der verschickten Email
$mail->WordWrap = 50; // Wortumbruch nach x Zeichen
$mail->IsHTML(true); // Email als HTML
$mail->CharSet = 'iso-8859-1'; // Kodierung der Email festlegen
// Email an Provider
$mail->From = $_POST['name']; // Angezeigte Absenderadresse
$mail->FromName = $_POST['email']; // Angezeigter Absendername
$mail->AddAddress("empfänergemail"); // Empfängeradresse
$mail->Subject = "Email 1"; // Betreff der Email
$body = '
<h3>blablabla</h3>
<table width="500" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="120">Name:</td>
<td>$_POST['name']</td>
</tr>
<tr>
<td width="120">Email-Adresse:</td>
<td>$_POST['email']</td>
</tr>
</table>
';
$mail->Body = $body;
$mail->AltBody = "Bitte nutzen Sie zur Anzeige dieser Email einen HTML-faehigen Email Client";
$mail->send();
$mail->ClearAllRecipients();
// Email an Kunden
$mail->From = $_POST['name']; // Angezeigte Absenderadresse
$mail->FromName = $_POST['email']; // Angezeigter Absendername
$mail->AddAddress("$_POST['email']"); // Empfängeradresse
$mail->Subject = "Email 2"; // Betreff der Email
$mail->AddAttachment(files/einedatei.doc);
$body = '
<h3>blablabla</h3>
<p>Sehr geehrte Damen und Herren, </p>
<p>wir bedanken uns für den Download unserer Datei </p>
<p>Sie finden die angeforderte Datei im Anhang dieser Email.</p>
<p>Mit freundlichen Grüßen</p>
[/quote]';
$mail->Body = $body;
$mail->AltBody = "Bitte nutzen Sie zur Anzeige dieser Email einen HTML-faehigen Email Client";
if(!$mail->Send())
{
header('Location: ../index.php?article_id=19&clang=0'); // Wenn ein Fehler auftritt
}
else
{
header('Location: ../index.php?article_id=20&clang=0'); // Wenn die Email verschickt wurde
}
?>
|
|
|
|
|
|
|
|
|
Ähnliche Themen |
Problem mit PHPMailer-Klasse
PHP: Prob bei PHPMailer - bei SMTP FOrmatierung futsch
ajax - Eingaben auslesen und phpmailer zur Verfügung stellen
PHPMailer Problem | Mails werden nur in HTML versendet!
PHP - Emails mit mail() versenden
php verschickt leere emails
|
|