[PHP] - Aktuelle MailVariable auslesen?
-
Hi Zusammen
Ich möchte gerne wissen ob es in PHP eine Funktion gibt, die aktuelle E-Mail adressen auslesen und diese als Variable anhängen kann?
Ich verschicke Links in der mail wie zum Beispiel:
www.domain.ch/admin.php?auftragnr=29292
Diese E-Mail kann, je nach Einteilung zugleich an vier verschiedene Mitarbeiter geschickt werden. Jeder hat dann die Möglichkeit den obigen Link anzuklicken und den Auftrag anzunehmen. Allerdings möchte ich nun auch noch zuweisen wer nun denn den Auftrag angenommen hat. Dafür ist folgender Link nötig:
www.domain.ch/admin.php?auftragnr=29292&email=info@domain.ch
Allerdings wird die Mail ja nicht nur an Info geschickt sondern an bsp 2 Adressen wie zum Beispiel: info@domain.ch, k.suter@domain.ch
$mitarbeiter = info@domain.ch, k.suter@domain.ch; mail($mitarbeiter....
Der Versand klappt ganz gut, doch wie kriege ich es hin, dass die Links in beiden Mails anders sind? Denn info@domain.ch sollte der Link mit email info@domain.ch erhalten und der andere k.suter am ende der Auftragsnr...
oder kann ich da eine Prüfung machen? Denn $mitarbeiter enthält ja zwei E-Mail Adresse. Gibt es denn da noch eine Prüffunktion, die dann irgendwie so abläuft:
if(is_email_in_mitarbeiter == info@domain.ch) { $email = info@domain.ch; } else { $email = k.suter@domain.ch) }
und man dies dann im gleichen Text so einbauen kann:
www.domain.ch/admin.php?auftragnr=29292&email='.$_REQUEST['email']. ...
Wenn ja, wie ist denn das senden möglich? Verschickt wird das ganze ja so:
mail($mitarbeiter, $betreff, $text, $header);
Der Text ist eben der wo auch der Link drin sein soll. Jetzt soll aber info@domain.ch und k.suter jeweils die eigene mailadresse hinten angehängt haben und nicht beide empfänger mit info...
Wie kann man diese verzwickte Sache am besten lösen, ohne dass man für jeden einzelnen (von 100) Mitarbeiter eine eigene Mailfunktion schreiben müsste??
...
bin auch am grübeln, vielleicht gibts jemand der so was schon mal gemacht hat...
Vielen Dank zum Voraus und viel SPass bei der Knacknuss!
-
du denkst einfach zu kompliziert
PseudoCode:
$mailadressen = {"hans@wurst.de", "bock@wurst.de", "ismir@wurst.de"}; foreach( $adresse in $mailadressen ) { sendemail( $adresse ); } function sendemail( $to ) { $text = "hallo " + $to + "."; $betreff = "Spammail"; $from = "Wurstverkäufer"; mail( $to, $betreff, $text, $from ); }
die genaue implementierung überlass ich dir
-
ich würde nur einen index übertragen, damit man nicht einfach eine andere email-adresse eintragen kann. Sonst könnte info@domain.ch den Auftrag im Namen von klaus@domain.ch bestätigen.
-
zwutz schrieb:
du denkst einfach zu kompliziert
PseudoCode:
$mailadressen = {"hans@wurst.de", "bock@wurst.de", "ismir@wurst.de"}; foreach( $adresse in $mailadressen ) { sendemail( $adresse ); } function sendemail( $to ) { $text = "hallo " + $to + "."; $betreff = "Spammail"; $from = "Wurstverkäufer"; mail( $to, $betreff, $text, $from ); }
die genaue implementierung überlass ich dir
Danke für den Ansatz, ich habe es versucht, doch ein array akzeptiert keine @ oder sonstige strings. Mit der Umwandlung wollte es auch nicht klappen.
Und woher nimmst Du $adresse ?? Es ist folgende Liste vorhanden:
if(in_array($_POST['plz'], $bezirk_aarau)) { $mitarbeiter = $ma_aarau; } if(in_array($_POST['plz'], $bezirk_baden)) { $mitarbeiter = $ma_baden; }
ok, die variable mabaden und aarau sehen so aus:
$ma_aarau = "erste.mail@gmx.net".","."zweitemail@gmx.net";
oder so:$ma_baden = kurz;
dann oben: roman = "info@gmx.net"; ¨kurz = "anderes@web.de";
So werden die Adressen ausgelsen. Das klappt ja mit dem Versand schon. Nur eben:
Wenn dann die Zeichenkette:
$ma_aarau mit beiden Mailadressen steht, soll an jede mailadresse das gleiche geschickt werden, aber hinter der auftragsnr mit der empfängermail. D.h, wenn emfpänger @gmx.ch ist, mit gmx.ch und ansonsten web.de...
-
Andere Idee, ginge folgende Möglichkeit auch?
//Diese Angabe ist in einer anderen Datei
dominic = "support@test2.ch";//Hier die zuweiseung für Bezirk aarau... Ausgabe: info@test.ch, support@test2.ch
$ma_aarau = dominic;nun in der Mailabfrage folgendes zu machen habe ich mir gedacht:
$email = explode(",", $ma_aarau); while { mail($email[], $betreff, $text, $header); }
Ich weiss nicht wie ich diese Arrays automatisch (Zahl E-Mails ist bis 10 begrenzt, und wenn weniger als 10 sind halt nur 2 mails verschickt werden email[0], email[1].... Kann man des automatisieren?
und könnte das funzen?
-
Mein Problem hab ich gelöst. Der Pseudocode von Zwutz konnte ich nicht übernehmen, doch da kam mir die Idee. Ich hatte wirklich zu weit gedacht.
In einer Datei hab ich alle mitarbeiter definiert (ma.inc.php):
$mitarbeiter1 = "email1@test.ch"; $mitarbeiter2 = "email2@test.ch";
In einer anderen Datei wiederum definiere ich die Mitarbeiter, welche im gleichen Bezirk arbeiten:
$bezirk1 = $mitarbeiter1.",".$mitarbeiter2;
Ok, nun ging es ja darum, die E-Mail Adresse des Empfängers einzusetzen, dass Mitarbeiter 1 seine E-Mail drin hat und Mitarbeiter 2 die mit email2@test.ch Adresse.
Dies habe ich so gelöst:
$mailadresse = explode(",", $bezirk1); foreach ($mailadresse as $mail) { $text = "Hallo, das ist ein Test. www.link.ch/auftragsnr=".$nr."&email=".$mail." klick mich!"; $betreff = "test"; $header = "From:testseite@globesolutions.ch(Test-Formular)"; mail($mail, $bestellung, $text, $header); }
Erklärung:
Ich lasse den Bezirk, in welchem ja die Mitarbeiter-Adressen mit einem Komma getrennt sind einzeln in ein Array $mailadresse auslesen. Dieses Array lasse ich nun durch foreach laufen und deklariere es als $mail. So klappt es.
Aber so wie Zwutz schrieb: $mailadressen = array(mail1, mail2),. geht es nicht, da ein array kein @ akzeptiert.
PS: Die Variable $nr ist nur als Test für irgend eine andere mögliche Variable. DIese selbst hat nichts mit dem eigentlichen Code zu tun,
Vielleicht was für die FAQ?
Grüsse
Wolf