Mailversand sowie Übergabe aus PHP-Variable

tastenkloppe
Goto Top
Guten Morgen sehr geehrtes Forum,

ich verfolge dieses Forum schon lange und habe nun selbst eine Frage.
Mein Spezialgebiet ist nicht gerade die Webentwicklung, aber ich verwalte und entwickle unser Intranet.

Wir nutzen derzeit als IT-Helpdesk die Freeware Spiceworks, diese stößt jedoch schnell an Ihre Grenzen was das Customizing betrifft.

Ich setze derzeit ein separates Frontend auf, in dem ich beispielsweise auch T-SQL Abfragen einbinden kann und dies auch schon umgesetzt habe.
Das gewünschte Ergebnis des Frontends, in dem vorab nur die Eingabe einer Rechnungsnummer erfolgt, sollte die ersichtliche Ausgabe aus der Datenbank sein,
sowie im Idealfall der Versand dieser Daten an eine spezifische Adresse von Spiceworks, sodass daraus ein Ticket resultiert.

Ich habe jedoch zwei Problemstellungen, bei denen ich mir erhoffe, dass mir hier im Forum geholfen werden kann:

- Das Ergebnis des T-SQL-Selects gebe ich derzeit via Echo für den Enduser aus und das ist auch so gewünscht, ich möchte den Inhalt nur gerne in einer Variable deklarieren, die anschließend via Post an die Function übergeben werden soll, die die Mail versendet.

- Im unten aufgeführten Code wird die E-Mail immer von einem spezifischen Account verschickt, die Mail (und das daraus resultierende Ticket) sollte aber im Idealfall im Namen - oder besser mit der E-Mail- des jeweiligen Benutzers versendet werden (eine LDAP-Anbindung ist existent und funktionsfähig -die User werden alle via SSO eingeloggt), mir fehlt aber die Variable für die E-Mail-Adresse und wie ich diese korrekt einbinde - das müsste ja etwas in der Form "$_SERVER ['REMOTE_USER']" sein.

Die ersten -leider gescheiterten Versuche- eine Variable zu initialisieren findet sich in Zeile 92-108 des Quellcodes.

Ich würde mich riesig über eine Rückmeldung Eurerseits freuen und verbleibe mit den besten Grüßen!

Content-Key: 3541197367

Url: https://administrator.de/contentid/3541197367

Ausgedruckt am: 19.08.2022 um 10:08 Uhr

Mitglied: SlainteMhath
SlainteMhath 04.08.2022 um 11:26:47 Uhr
Goto Top
Moin,

du solltest dich mal in das Thema SQL-Injection einlesen. Was du hier baust:


Ist eine Einladung für Hacker den Server zu übernehmen (auch wenn's nur ein interner Server ist)

lg,
Slainte
Mitglied: Tastenkloppe
Tastenkloppe 04.08.2022 um 11:33:57 Uhr
Goto Top
Zitat von @SlainteMhath:

Moin,

du solltest dich mal in das Thema SQL-Injection einlesen. Was du hier baust:


Ist eine Einladung für Hacker den Server zu übernehmen (auch wenn's nur ein interner Server ist)

lg,
Slainte

Danke für den Hinweis! Das ist mir absolut bewusst, in prepared statements lese ich mich gerade ein, sehe ich aber im Nachgang als Optimierung an, zunächst wollte ich erst eine lauffähige Variante haben und weitere Abfragen dann sicher gestalten
Mitglied: SlainteMhath
SlainteMhath 04.08.2022 um 11:36:30 Uhr
Goto Top
zunächst wollte ich erst eine lauffähige Variante haben und weitere Abfragen dann sicher gestalten
Deine Prioritäten sind falsch face-smile
Mitglied: buddafisch
buddafisch 04.08.2022 aktualisiert um 11:46:40 Uhr
Goto Top
Nicht nur das, die übergebenen Daten für die Mail-Funktion werden in keinster Weise in quoted printables umgewandelt bzw. kodiert übergeben. Eine Mail mit einem Umlaut oder Sonderzeichen wird dir so bei den empfangenden Mailservern wohl zu 99% im Spam landen oder sogar von den Empfangenden Mail-Servern gleich abgelehnt! Es lauern hier noch mehr Fallen!
Deswegen, wenn du keine Ahnung von der Materie hast, nutze für das Versenden eine Bibliothek wie z.B. phpmailer. Oder übergebe das Projekt am besten gleich an jemanden der weis was er da tut, wenn es schon an einer Variablen und Funktionsdefinitionen hapert sehe ich sehr schwarz ...
Mitglied: Tastenkloppe
Tastenkloppe 04.08.2022 aktualisiert um 11:54:40 Uhr
Goto Top
Zitat von @bangalore:

Nicht nur das, die übergebenen Daten für die Mail-Funktion werden in keinster Weise in quoted printables umgewandelt bzw. kodiert übergeben. Eine Mail mit einem Umlaut oder Sonderzeichen wird dir so bei den empfangenden Mailservern wohl zu 99% im Spam landen oder sogar von den Empfangenden Mail-Servern gleich abgelehnt! Es lauern hier noch mehr Fallen!
Deswegen, wenn du keine Ahnung von der Materie hast, nutze für das Versenden eine Bibliothek wie z.B. phpmailer. Oder übergebe das Projekt am besten gleich an jemanden der weis was er da tut, wenn es schon an einer Variablen und Funktionsdefinitionen hapert sehe ich sehr schwarz ...

Danke für diesen Hinweis, das hatte ich (als Nicht-Webentwickler) überhaupt nicht auf dem Schirm. Glücklicherweise ist dies aber -vermutlich aufgrund des Domänen-Internen Versands- nicht der Fall, vermutlich weil es eine vertrauenswürdige Stelle ist. Die Mails sollen ja alle nur eine spezifische, interne E-Mail-Adresse gehen.

Bzgl. der beiden zuletzt genannten Punkte: Es sind ja tatsächlich nur die beiden Dinge noch erforderlich, dann habe ich eine Grundlage auf der ich alles Weitere aufbaue, abgesehen vom select ändert sich daran nichts mehr.
Mitglied: buddafisch
buddafisch 04.08.2022 aktualisiert um 12:09:30 Uhr
Goto Top
https://www.w3schools.com/php/php_functions.asp
Mitglied: Tastenkloppe
Tastenkloppe 04.08.2022 um 12:15:46 Uhr
Goto Top
Zitat von @bangalore:

https://www.w3schools.com/php/php_functions.asp

Mein Problem ist, dass die Variable da noch nicht zur Verfügung steht und dort ja auch nicht initialisiert wird. Ich müsste die aus dem oberen php-code in der function verfügbar machen, da weiß ich leider nicht wie.
Mitglied: stefaan
stefaan 04.08.2022 um 12:30:38 Uhr
Goto Top
Servus,

wenn das ganze Customizing mehr als ein Mailversand werden soll: Nutze bitte ein Framework wie z.B. Laravel.
Das kann alles (in deinem Fall DB-Abfragen, Mailversand, sicherheitsrelevante Überürpfungen von Inputs, ...).

Ja, es mag sich am Anfang komisch anfühlen, wenn man ein Framework mit 30-50MB verwendet, um nur schnell ein paar Daten zu verarbeiten. Aber es kommen dann schnell weitere Anforderungen dazu und da spielt das Framework seine Stärken aus.

Grüße, Stefan
Mitglied: buddafisch
buddafisch 04.08.2022 aktualisiert um 12:51:18 Uhr
Goto Top
Zitat von @Tastenkloppe:
Mein Problem ist, dass die Variable da noch nicht zur Verfügung steht und dort ja auch nicht initialisiert wird. Ich müsste die aus dem oberen php-code in der function verfügbar machen, da weiß ich leider nicht wie.
Na einfach die Postvariable abfragen und nur wenn sie gesetzt ist weitermachen ....
Variablen aus PHP-Blöcken die vorher angelegt wurden sind automatisch in weiteren Blöcken weiter unten verfügbar!. Das ist ja die Funktionsweise von einem PHP-Parser.

Hier fehlen vollkommen die absoluten Basics face-confused.

Ich bin daher nun raus.

Viel Spaß noch bei deinem "Let's Bastel-Projekt" face-big-smile. Kann man nur hoffen das da nichts wichtiges dran hängt ... Aber wenn ich schon das Wörtchen "Rechnungskorrektur" lesen, bleibt dann wohl nur noch Kopfschütteln.

Adios muchachos