PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Webseite mit eMails steuern?



Hiµck
31.05.2006, 14:15
Hallo,
ich habe gleich 2 Probleme.
1)
Ich möchte über eine Webseite eMails verschicken.
Auf der Seite sollen mehrere Auswahlmöglichkeiten z.B. Raido Buttons, Schieberegler, Kombo Boxen etc. vorhanden sein. Durch Betätigen eines Submit Button soll eine eMail an eine bestimmte Adresse geschickt werden. Der Text in der eMail soll von den Einstellungen abhängig sein, die auf der Seite gemacht wurden. Eine eMail soll zum Beispiell so aussehen: Box 1 markiert, Listeneintrag 2 gewählt etc.

2)
Mit Hilfe einer eMail möchte ich die Darstellung einer Website verändern.
Ich stell mir das ganze so vor, dass ich eine eMail an eine festgelegte Adresse schicke. In der eMail steht dann z.B. der Text: Zeige Bild1 UND Bild2. Dadurch soll bei jedem Aufruf der Webseite das Bild1 und Bild2 angezeigt werden, bis ich eine neue Anweisung per eMail schicke.

Zu 1) glaube ich, dass das ganze prinzipiell möglich ist.
Bei 2) bin ich mir da nicht mehr so sicher.

Was haltet ihr davon? Ist das Ganze machbar? Habt ihr sowas schonmal gemacht oder habt ihr Lösungsansätze?

bekoeppel
31.05.2006, 15:51
1) ist ohne Probleme möglich
2) sollte machbar sein

1) am besten machst du in HTML ein Formular und beim Absenden rufst du mit POST ein PHP auf.
Im PHP werden dann die Parameter vom HTML-Formular, das du ja per POST an das PHP weitergegeben hast, auswertet.
Am besten speicherst du zuerst alles in einem String.
Wenn also check_box1=true ist, dann schreibst du in den String "Box 1 gewählt"
Dann die nächste Überprüfung, und den Text am ersten String anhängen...
das dann mit allen machen.
am schluss mit sendmail oder ähnlichem abschicken. müsste nachgucken wie das ding in php heisst.

2) in joomla gibt es contentbymail, das eine mailbox abfragt und darin enthaltene mails publiziert. vielleicht ist das nützlich?
oder selber entwickeln:
per php die mailbox abfragen, müsste aber periodisch geschehen, zb durch cronjob aufgerufen werden. im mail würde ich ein ganz spezifisches tag machen, das deine anweisungen einleitet. also zb im mail das schreiben: [-~~-] und dahinter der befehl. das hat den vorteil, dass du mit dem php-script nach dem zeichen suchen kannst und alles was dahinter steht ist dein befehl. ansonsten könnte das knifflig werden, wie du herausfindest wo die befehle anfangen und so.
nachher machst du über eine switch oder eine if-else-struktur die auswertung.

ich habe noch nie mailboxen abgefragt, aber da findest du bestimmt tuts im internet.

lg

Hiµck
02.06.2006, 13:58
Danke für die schnelle Antwort. Das sind alles ziehmlich neue Dinge für mich. Wird wohl ne weile dauern bis ich mich da rein gefuchst habe.

Superhirn
02.06.2006, 15:33
Hallo,

Einafcher ists mit javascript.
[php:1:cd682e0b50]<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="robots" content="noindex, nofollow">

<title>Newsletter</title>

<script language="javascript">
function formtest() {
if (document.newsletter.vorname.value == "") {
alert ("Bitte alle mit * gekennzeichneten Felder ausfüllen!");
return (document.newsletter.vorname.value != "")
}
if (document.newsletter.familienname.value == "") {
alert ("Bitte alle mit * gekennzeichneten Felder ausfüllen!");
return (document.newsletter.familienname.value != "")
}
...
da musst deinen code reins chreiben
]
</script>

</head>

<body>


<form ACTION="cgi-bin/ebformmailer.cgi?action=send" METHOD="POST" name="newsletter" enctype="multipart/form-data" onsubmit="return formtest()">

<input type=hidden NAME="recipient" value="sport@vitgo.org">
<input type=hidden NAME="subject" value="Newsletter Anmeldung">

<input type="hidden" name="email" value="sport@vitgo.org">
<input type="hidden" name="domain" value="http://www.gruebler.at/iframe_newsletter.htm">
<input type="hidden" name="inputs" value="titel,vorname,familienname,geschlecht,alter,adress e,plz,ort,telefonnr,e_mail">

<table border="0" width="100%" id="table_form">
<tr>
<td width="241">
<font style="font-size: 9pt">Titel:</font></td>
<td>
<span style="font-size: 9pt">

<input type="text" name="titel" size="20"></span></td>
</tr>
<tr>
<td width="241">
<font style="font-size: 9pt">*Vorname:</font></td>
<td>
<span style="font-size: 9pt">
<input type="text" name="vorname" size="30"></span></td>

</tr>

</table>
</form>

</p></font></p>

</body>

</html>[/php:1:cd682e0b50]

Hier wird zB der javascripcode in der funktion formtest aufgerufen und da drin legst dann fest, was gemacht werden soll, wenn dass oder das makiert ist...
den formmailer bekomst unter google. (ebformmailer.cgi)

maze2k
03.06.2006, 14:31
1. ist ja wie von den anderen gesagt kein Problem.

2. Am besten mit PHP. Da gibt es Funktionen, mit denen man Mails in einer Mailbox (über POP) abrufen kann. Im PHP-Script kannst du den Inhalt der Mail dann verarbeiten und dann den Inhalt deiner Webseite dementsprechend anpassen.

Etwas komplizierter aber professioneller ist es mit einem eigenen Webserver und Servlets...

Hiµck
06.06.2006, 14:29
Danke für die Antworten.
Mit javascript habe habe ich schon mal gearbeitet. PHP ist dagen für mich absolutes Neuland. Aber ich glaube ohne geht es wohl nicht. Wenn ich Zeit habe werde ich mich mal damit beschäftigen.

gast1234
06.06.2006, 17:05
php ist auch nicht schwerer als js. Es gibt einige Tutorien im Internet, die die Grundlagen gut erklären. Recht nett ist auch selfphp, allerdings reicht es selfhtml kaum das Wasser.
Problematischer ist es nach meiner Meinung, php-fähigen Webspace zu finden, meistens muss man dafür ein paar euros im Monat hinblättern und man sollte genau hingucken. Mancher Anbieter streicht einfach mal ein paar grundfunktionen in php, um sie in seinem Premiumangebot für mehr Geld zu verkaufen.

zu 1) wie viele bereits gesagt haben, ist das kein Problem. Habe ich schonmal geschafft, Interesse an Quellcode?
zu 2) das halte ich schon für schwieriger, php wird ja quasi immer bei Zugriff ausgeführt. Meines Wissens nach, müßte er dann seine php Webseite aufrufen, die die mails vom pop server holt und parst. Oder hat jemand "Endlosscripte" laufen? Dem Betreiber wird das sicherlich nicht schmecken.
Dann verstehe ich nicht, warum man es nicht gleich mit einer einfachen Formularsteuerung machen sollte, mit Passwort meinetwegen. Dann gibst du das Bild bzw. den Dateinamen in einem Textfeld an, welches zum Start eingeblendet werden soll. Den Dateinamen speicherst du dann mittels der php-Datei in irgendeiner Konfigurationsdatei ab. Vorher vergleichst du noch, ob das eingegebene Passwort, mit Deinem abgespeicherten übereinstimmt.

mfg
Gast2000

ACU
06.06.2006, 19:53
Hallo!
wenn du kostenlosen, php fähigen Webspace brauchst, kann ich weiterhelfen.
Schau mal HIER (https://www.roboternetz.de/phpBB2/viewtopic.php?t=18613)


MfG ACU

Hiµck
07.06.2006, 12:03
@gast1234
Quellcode wäre nicht schlecht.
zu 2) Es würde vollkommen ausreichen wenn die Webseite sich jede Minute einmal aktuallisiert.
Mit den eMails wird über einen Provider ein anderes Gerät fengesteuert.
Das ganze läuft so ab, dass ich eine eMail an den Provider schicke. Dieser leitet dann die Steuerbefehle an das Gerät weiter.
Wenn Rückmeldungen vom Gerät kommen erhalte ich durch eine eMail die mir der Provider schickt.
Da der Inhalt der eMails Kryptisch ist, muss ich einen Wegfinden die eMails in eine Form zubringen, die für den Menschen verständlich ist.
Es würde reichen die eMails auf meinem PC auszuweren. Aber eine Lösing über eine Internetseite wäre meiner Meinung nach besser, da ich dann von jedem PC mit Internetverbindung den Gerätestatus überprüfen bzw. ändern kann.
@ACU
Danke für das Angebot. Ich werde bestimmt darauf zurück kommen.

gast1234
07.06.2006, 13:29
/* Empfänger */
$empfaenger = array("bla<bla@bla.de>");
/* Absender */
$absender = "webmaster<blub@blub.de>";
/* Rueckantwort */
$reply = "bla<bla@bla.de>";
/* Betreff */
$subject = "hier steht der Betreff";
/* Nachricht */
$message = ''; // wird später gefüllt
$headers = '';
$empfaengerString = '';

function add_mail_header()
{
global $absender,$empfaenger,$empfaengerString,$headers,$ reply;

$headers .= "From:".$absender."\n";
$headers .= "Reply-To:" . $reply . "\n";
$headers .= "X-Mailer: PHP/" . phpversion(). "\n";
$headers .= "X-Sender-IP: $REMOTE_ADDR\n";
$headers .= "Content-type: text/html\n";
$empfaengerString = implode(",",$empfaenger);
}


function send_mail()
{
global $empfaengerString,$headers,$message, $subject, $reply;
return mail($empfaengerString, $subject, $message, $headers);
}das alles kannst du in eine extra php datei(dateiname.php ) reinschreiben und sie dann mit in include_once dateiname.php in der PHP Datei einfügen, die von deinem Formular aufgerufen wird.
Ändere oben die Daten für Empfänger und so weiter.

Dann brauchst du nur noch den Inhalt der mail mit den Eintragungen des Formulars füllen.
Z.B. hier den Inhalt von Vorname und Name. (falls beim Formular Name und Vorname angegeben werden sollen und mit post übergeben werden, ähnlich dem HTML Code von Superhirn oben)
$message = $_POST["Vorname"].' '.$_POST["Name"];
so jetzt Header hinzufügen und weg damit

add_mail_header();
send_mail();

Ich glaube in der Methode mail() brauch man den header nicht unbedingt angeben, dann vereinfacht die Sache nochmals extrem. Ich habe es aber gemacht und es funkioniert.
Für deinen zweiten Fall habe ich keinen Code, aber es ist nur eine Fleißarbeit. Du wertest genauso ein Formular aus und schreibst und liest Dateien.

mfg Gast1234

Hiµck
12.06.2006, 16:16
Zu 2)
Ich bin im Netz auf folgende Seite gestoßen.
http://pear.php.net/packages.php?catpid=14&catname=Mail
Hier habe ich mir mal das "Mail_IMAPv2" angesehen.
Wie beurteilt ihr das ganze? Kann ich das verwenden und wie binde ich das ganze in PHP ein?

gast1234
12.06.2006, 18:59
Ich bin kein Experte, aber für mich sieht das so aus, daß man das Paket auf dem Webserver installieren muß und ich gehe mal davon aus, da brauch man Admin Rechte. Ich schätze mal, das Paket muß wenigstens in die php.ini eingetragen werden, daß der Webserver die header und die Kompilation der zusätzlichen funktionen findet und kennt. Also wenn Du ihn nicht selber besitzt sieht es schlecht aus. Weiß irgendwer genaueres?

Oben hat doch schonmal maze geschrieben, daß php von Hause aus auch emails vom server holen kann.

mfg Gast2000

Hiµck
14.06.2006, 12:09
@gast1234
Ich heute mal deinen Code ausprobiert. Funktioniet super! Nochmal danke daüfur.

@maze2k
Wie heißen die Funktionen mit denen man Mails in einer Mailbox (über POP) abrufen kann? Die Funktionen die ich bisher gefunden habe betreffen nur das Senden.

gast1234
14.06.2006, 16:21
Pop Server abzurufen, ist doch scheinbar schwerer zu finden als zuerst gedacht. Neben dem http://www.php.net/manual/de/ref.imap.php hier habe ich nur Forenbeiträge wie, "na such doch mal , sowas gibts auf jeden Fall" gefunden. Nichts konkretes. Die Sache würde mich auch mal interessieren. In dem link hier, scheint man auch ein Packet installieren zu müssen. Auf meinem Server zu Hause ist das ja problemlos, aber ob mein Provide da mitmacht?!?
Schauen wir mal, vielleicht weiß jemand genaueres.

Gast1234

Hiµck
15.06.2006, 13:55
Zu 1)
habe ich unter Self HTML ein Beispiel mit Auswertung von Formulareinträgen gefunden.
http://aktuell.de.selfhtml.org/tippstricks/php/form-mail/index.htm

Hier noch eine etwas allgemeinere Frage: Was ist ein C-Client? Und wie müsste man diesen installieren?

Zu 2)
habe ich mir noch ein paar weitere Gedanken gamacht. Mit PegasusMail lässt sich der Inhalt einer eMail in eine Textdateischreiben. Diese Datei könnte ich mit einem C Programm auswerten. Das C Programm erzeugt dann eine HTML Datei, die über FTP Hochgeladen wird.
Das ganze hätte den Nachteil dass mein Rechner ständig laufen müsste.
Kann ich auf FTP eigentlich soeinfach zu greifen wie auf meine Festplatte "C:\TEST\TEST.HTML"? Wie gebe ich Benutzername und Kennwort für die Verbindung an?
Und wie mache ich das dann die Rechtevergabe "chmod 755....."?

Hiµck
15.06.2006, 16:33
Zu2)
Ich hab mal folgendes Beispiel ausprobiert: http://www.php.net/manual/de/function.imap-mailboxmsginfo.php
Das Beispiel funktioniert und ich bekomme die Anzahl der Mails auf dem Server angezeigt.
Beim folgenden Beispiel habe ich probleme:
http://www.php.net/manual/de/function.imap-open.php

$mbox = imap_open ("{your.imap.host:143}", "username", "password");

echo "

<h1>Mailboxes</h1>\n";
$folders = imap_listmailbox ($mbox, "{your.imap.host:143}", "*");
if ($folders == false)
echo "Call failed
\n";
else
while (list ($key, $val) = each ($folders))
echo $val . "
\n";

echo "

<h1>Headers in INBOX</h1>\n";
$headers = imap_headers ($mbox);
if ($headers == false)
echo "Call failed
\n";
else
while (list ($key, $val) = each ($headers))
echo $val . "
n";

imap_close ($mbox);

Die Ausgabe sieht etwa so aus:

Mailboxes
{your.imap.host:143}INBOX

Headers in INBOX

und dann ist plötzlich schluss.
Ich mit echo ein paar Zeilen dahinter eingefügt aber es scheint so als ob nach der Zeile "$headers = imap_headers ($mbox);" keine weiteren Kommanos mehr ausgeführt werden.

cemizm
25.06.2006, 10:44
Vielleicht erklärst du mal was du genau vorhast, denn evtl ist das ganze doch einfacher zu lösen wenn du das mit der EMail weg lässt.

Ich würde das ganze so machen das man einen Administrations bereich hat wo dann die gewünschten Raido Buttons, Schieberegler, Kombo Boxen etc.. vorhanden sind. Mit einem klick auf Submit wird nun keine EMail verschickt sondern die gewählten Einstellungen zb. in eine Textdatei übernommen. Wenn man nun die Seite aufruft wo das Ergebnis angezeigt werden soll, wird diese Textdatei ausgewertet und angezeigt.

Ich weiss ja nicht inwiefern das mit der EMail notwendig ist aber deswegen solltest du mal ungefähr erklären was du damit vorhast.

Superhirn
26.06.2006, 18:40
2)
Mit Hilfe einer eMail möchte ich die Darstellung einer Website verändern.


Das würd ich nicht mit mails machen.

du kennst sicher die grafikpacks von manchen spieleseiten oder so.
hier ist das mit cookies und css gelöst. so ungefähr kannst du es machen, nur das das grafikpack dann eben nicht am pc sondern am server ist.

je anch cookie am pc (dessen der die seite aufruft) wird die entsprechende css (style-sheet) geladen, und die kümmert sich dann übers aussehen.

nur ich kenn mich da nicht so gut aus damit. also etwas recherche unter selfhtml.org musst machen.

um e-mails zu vershcicken mach dir mal keine sorgen. das thema ist ausführlich im selfhtml.org beschrieben.

Grüße
Superhirn

Hiµck
28.06.2006, 09:36
Ohne eMails geht es nicht, da ich mit einer anderen Firma zusammenarbeite die mir die eMails automatisch zuschickt.
Mit den Funktonen:

"int imap_open ( string mailbox, string username, string password [, int flags] )"

UND

"string imap_body ( int imap_stream, int msg_number [, int flags] )"

kann ich auf den Inhalt der eMails zu greifen.
Der Rest sollte kein Problem sein.