minimail als 3rd-party-apps

Status
Für weitere Antworten geschlossen.

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Manchmal will man ganz schnell mal was mailen :D
Ganz klassisch ohne Dateianhänge, ohne Textformatierung, ohne Flags, ohne CC, BCC - einfach nur einfach.
Dann könnte das folgende kleine PHP-Skript gerade das Richtige sein ;)

(1) Alles klar machen für eine 3rd-party-apps und dran denken, dass es hier nur was auf eigene Verantwortung gibt :D
(2) Alles klar machen im Disk Station Manager für das Versenden von Mails (Stichwort: Benachrichtigung)
(3) Eine Konfigurations-Datei für die 3rd-party-apps einrichten in /etc/syno/synoman/webman/3rdparty/minimail/application.cfg mit folgendem Inhalt:
Rich (BBCode):
text = minimail
description = minimail
type = embedded
path = /phpsrc/minimail/minimail.php
(4) Ein Verzeichnis erstellen in /usr/syno/synoman/phpsrc/minimail und eine Datei erstellen namens minimail.php mit folgendem Inhalt:
PHP:
<?php
if ($_REQUEST['SendTo'] != '') {
  if ($_REQUEST['Subject'] == '') $_REQUEST['Subject'] = '(no subject)';
  mail($_REQUEST['SendTo'],$_REQUEST['Subject'],$_REQUEST['Body']);
  print '<script>alert("send mail")</script>';
}
elseif (isset($_REQUEST['SendTo'])) print '<script>alert("no mail send - empty TO-field")</script>';
?>
<html><head><title>minimail</title>
<style>body,input,textarea{font:11px Verdana}</style>
</head><body>
<form id="f" name="f" action="minimail.php">
<fieldset><legend>Send to:</legend>
<input type="text" name="SendTo" size="126" value="<?php print $_REQUEST['SendTo'] ?>"></fieldset>
<fieldset><legend>Subject:</legend>
<input type="text" name="Subject" size="126" value="<?php print $_REQUEST['Subject'] ?>"></fieldset>
<fieldset><legend>Body:</legend>
<textarea name="Body" cols="123" rows="10"><?php print stripslashes($_REQUEST['Body']) ?></textarea></fieldset>
<center><input type="reset" value="reset" />
<input type="submit" value="send" /></center>
</form></body></html>

(5) Den Disk Station Manager refreshen und ausprobieren.

.
 

Anhänge

  • minimail.jpg
    minimail.jpg
    34,2 KB · Aufrufe: 273

sixpack12

Benutzer
Mitglied seit
04. Feb 2008
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
Thanks itari

Bekomme eine Fehlermeldung. Kannst du damit was anfangen?




Gruss sixpack12
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
(1) Funktioniert die Mail-Funktion im Disk-Station-Manager bei dir? Kannst da eine Testmail senden?

(2) Welche Firmware hast?

itari
 

sixpack12

Benutzer
Mitglied seit
04. Feb 2008
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
*Schäm*, man sollte vorher die "Benachrichtigung" aktivieren.
Funzt nun 1a, Dank dir, lieber itari.
Firmware DSM 2.0-0640.


Gruss sixpack12
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
VERSION 2:

Mit Absenderfeld und Auswahl, ob nur reiner Text oder HTML im Body vorkommen kann.

PHP:
<?php
exec("/bin/get_key_value /etc/synoinfo.conf eventmail1",$OUT);$FROM=$OUT[0];
if ($_REQUEST['SendTo'] != '') {
  if ($_REQUEST['Subject'] == '') $_REQUEST['Subject'] = '(no subject)';
  mail($_REQUEST['SendTo'],$_REQUEST['Subject'],stripslashes($_REQUEST['Body']),
  "From: \"".$_REQUEST['From']."\" ".$FROM."\nContent-Type: ".$_REQUEST['ContentType']."\n" );
  print '<script>alert("send mail")</script>';
}
elseif (isset($_REQUEST['SendTo'])) print '<script>alert("send not mail - empty TO-field")</script>';
if (!isset($_REQUEST['From'])) $_REQUEST['From'] = substr($FROM,0,strpos($FROM,'@'));
if (!isset($_REQUEST['ContentType'])) $_REQUEST['ContentType'] = "text/plain";
?>
<html><head><title>minimail</title>
<style>body,input,textarea{font:11px Verdana}fieldset{border:1px solid #bbb}</style>
</head><body>
<form id="f" name="f" action="minimail.php">
<input type="hidden" id="action" name="action" value="" />
<fieldset><legend>From:</legend>
<input type="text" id="From" name="From" size="126" value="<?php print $_REQUEST['From'] ?>"></fieldset>
<fieldset><legend>Send to:</legend>
<input type="text" id="SendTo" name="SendTo" size="126" value="<?php print $_REQUEST['SendTo'] ?>"></fieldset>
<fieldset><legend>Subject:</legend>
<input type="text" id="Subject" name="Subject" size="126" value="<?php print $_REQUEST['Subject'] ?>"></fieldset>
<fieldset><legend>Body:</legend>
Content-Type: 
<input type="radio" name="ContentType" value="text/plain" 
<?php print $_REQUEST['ContentType']=='text/plain'?'checked="checked"':'' ?>>Text
<input type="radio" name="ContentType" value="text/html" 
<?php print $_REQUEST['ContentType']=='text/html'?'checked="checked"':'' ?>>HTML<br/>
<textarea name="Body" cols="123" rows="10"><?php print stripslashes($_REQUEST['Body']) ?></textarea></fieldset>
<center><input type="reset" value="reset" />
<input type="submit" value="send" /></center>
</form>

So long

itari
 

Garfield

Benutzer
Mitglied seit
09. Jul 2008
Beiträge
193
Punkte für Reaktionen
0
Punkte
16
Version 1 funktioniert prächtig !

Version 2 spuckt mir einen
Warning: mail() [function.mail]: Failed to send mail. (501 5.1.7 Error parsing address: <"Garfield") in /usr/syno/synoman/phpsrc/minimail/minimail.php on line 6
raus.

Könnt man (sofern es die gibt) in V3 gleich nen HTML Editor und eine Standard-Signatur mit einbacken? :D
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Mach mal eine Screen-Shoot vom Absender, den du eingegeben hast, damit ich den Fehler verstehe. Bei mir läuft es nämlich.

Signatur weiss ich nicht, wie man die einbauen könnte; muss ich mal nachlesen im Mail-Protokoll.

HTML-Editor kannst dir doch selbst machen im FF mit dem Add-on "Write Area". Installier das im FF und du kannst jedes TEXTAREA-Feld als HTML editieren. Ich denke das reicht doch, oder?

itari
 

HarryPotter

Benutzer
Mitglied seit
24. Aug 2007
Beiträge
2.156
Punkte für Reaktionen
0
Punkte
0
Dieses Script gibt mir folgende Meldung:

Warning: mail() [function.mail]: Failed to send mail. (501 <"xxx@xxxxx.net">: sender address must contain a domain) in /usr/syno/synoman/phpsrc/minimail/minimail.php on line 6

(Testmails und Benachrichtigungen von der DS funktionieren)

:mad:
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Hast die erste Version auch mal probiert? Da müsste es ohne Probs gehen.

Bei der zweiten Fassung muss (!) in dem Disk Station Manager eine Absender-Email angegeben werden, weil diese ausgelesen wird. Also genauer: in der Datei /etc/synoinfo.conf muss das Feld "eventmail1" eine gültige Absender-Email-Adresse aufweisen.

Und in der zweiten Version statt

"From: \"".$_REQUEST['From']."\" ".$FROM."\nContent-Type: "

mal das Folgende ausprobieren:

"From: \"".$REQUEST['From']."\" <".$FROM.">\nContent-Type: "

itari
 
Zuletzt bearbeitet:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Dann schau noch mal den Post vorher an, hab da geändert
 

HarryPotter

Benutzer
Mitglied seit
24. Aug 2007
Beiträge
2.156
Punkte für Reaktionen
0
Punkte
0
ok, die Absendermailadresse war drin.

Mit der Codeänderung gehts, allerdings scheint nun das FROM Feld total ignoriert zu werden, ich kann eingeben was ich will, im erhaltenen Mail steht als Absender immer die gleiche Adresse wie für den Empfänger
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Joa, dann macht dein E-Mail-Provider das automatisch rein. Das können wir beide dann nicht beeinflussen. Aber das ist ja auch nicht soo schlimm, ist ja nur eine Mini-Mail und die ist ja besser als nichts - oder?

itari

PS: ich hab auch noch eine dritte Version, die verschiedene Absender kann, bin aber im Moment zu faul, die zu veröffentlichen.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ja klar, ist eh mehr zum Spielen gedacht ;)

Genau :)

Man kann spielerisch herausfinden, dass man aus seinen selbstgeschriebenen Web-Anwendungen "notifies" per mail an sich schicken kann. Zum Beispiel, wenn man eine selbst geschriebenes Backup fährt oder so seine Hitzewerte bei Schwellenüberschreitung los wird.

Zum anderen kann man, wenn man möchte, anderen Leuten die Postfächer zusubbeln. Da es ja viele Leute gibt, die nicht nur aus dem Web saugen wollen, sondern auch was versenden, könnten die schon auf so eine Idee gewartet haben. :rolleyes:

Last not least kann man per Email seine Files zur Google-Mail uploaden. Es gibt ja schon einige Beiträge, wo Leute gerne ihre Dateien für irgendwelche Zwecke ins Netz hochladen wollen. Bei Google-Mail hat man schon Browser-add-ins und kann garantiert sicher sein, dass Google alles liest :D

Da es den sendmail ja nicht standardmäßig in der klassischen Form auf der DS gibt, ist das halt ne MiniMail-Lösung. Ich hab mir übrigens den nail installiert und kann auch so ziemlich alles (senden und empfangen) per Kommandozeile, das Schöne: der nail ist ja eigentlich ein xmail-Clone, so dass man sich auch gar nicht umstellen muss.

itari
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat