HTML-Email Versand mit htmlmail.sh - Größenproblem

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Antworten
olli72
Beiträge: 22
Registriert: 20.10.2015, 12:42

HTML-Email Versand mit htmlmail.sh - Größenproblem

Beitrag von olli72 » 12.05.2016, 15:26

Hallo,

ich versuche mittels der htmlmail.sh Emails im HTML-Format zu versenden.

Der angegebene Code funktioniert so. Wenn ich jedoch die Auskommentierung des letzten Thermostat wegnehme,
wird die Mail nicht mehr versendet. Ein Codingfehler liegt hier nicht vor.

Ich denke entweder hat die string-Variable eine Größenbeschränkung oder bei der htmlmail.sh habe ich einen "Überlauf".

Kennt jemand das Problem oder kann mir hier jemand eine Lösung verraten ?

DANKE und viele Grüße
Jörg

Code: Alles auswählen

!*************************************************************************
! Variablen deklanieren  
!*************************************************************************
var    sys_zeit_datum            = system.Date();
string sDate                     = system.Date("%d.%m.%Y");
string txt_Mailbetreff           = "Gesamtstatus";

string txt_Mailtext00            = "";
string txt_Mailtext01            = "";
string txt_Mailtext02            = "";
string txt_Mailtext03            = "";
string txt_Mailtext04            = "";
string txt_Mailtext99            = "";


!*************************************************************************
! Status Anwesenheit
!*************************************************************************
txt_Mailtext00  = txt_Mailtext00 # "<HTML><BODY>";
txt_Mailtext00  = txt_Mailtext00 # "<font size=1>";

txt_Mailtext01  = txt_Mailtext01 # "<BR>"; 
txt_Mailtext01  = txt_Mailtext01 # "<b><font size=2>Alarm-Steuerung</b>" # "<BR>"; 
txt_Mailtext01  = txt_Mailtext01 # "<TABLE BORDER=0>";
txt_Mailtext01  = txt_Mailtext01 # "<colgroup> <col width=200> <col width=400> </colgroup>";
txt_Mailtext01  = txt_Mailtext01 # "<TR><TD bgcolor=A9D0F5><font size=1>aktueller Status:                                        </TD>"; 
txt_Mailtext01  = txt_Mailtext01 #     "<TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("ALARM").Value()                    # "</TD></TR>";
txt_Mailtext01  = txt_Mailtext01 # "<TR><TD bgcolor=A9D0F5><font size=1>manuell:                                                 </TD>";
txt_Mailtext01  = txt_Mailtext01 #     "<TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("ALARM_man").Value()                # "</TD></TR>";
txt_Mailtext01  = txt_Mailtext01 # "</TABLE>";


txt_Mailtext02  = txt_Mailtext02 # "<BR>"; 
txt_Mailtext02  = txt_Mailtext02 # "<b><font size=2>Anwesenheit</b>" # "<BR>"; 
txt_Mailtext02  = txt_Mailtext02 # "<TABLE BORDER=0>";
txt_Mailtext02  = txt_Mailtext02 # "<colgroup> <col width=200> <col width=400> </colgroup>";
txt_Mailtext02  = txt_Mailtext02 # "<TR><TD bgcolor=A9D0F5><font size=1>aktueller Status:                                        </TD>"; 
txt_Mailtext02  = txt_Mailtext02 #     "<TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("Status_Anwesenheit").Value()       # "</TD></TR>";
txt_Mailtext02  = txt_Mailtext02 # "<TR><TD bgcolor=A9D0F5><font size=1>letzte Änderung:                                         </TD>";
txt_Mailtext02  = txt_Mailtext02 #     "<TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("Status_Anwesenheit_Zeit").Value()  # "</TD></TR>";
txt_Mailtext02  = txt_Mailtext02 # "<TR><TD bgcolor=A9D0F5><font size=1>WLAN-Logons:                                             </TD>";
txt_Mailtext02  = txt_Mailtext02 #     "<TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("Status_Handy").Value()             # "</TD></TR>";
txt_Mailtext02  = txt_Mailtext02 # "</TABLE>";

txt_Mailtext03  = txt_Mailtext03 # "<BR>"; 
txt_Mailtext03  = txt_Mailtext03 # "<b><font size=2>Heizung</b>" # "<BR>"; 
txt_Mailtext03  = txt_Mailtext03 # "<TABLE BORDER=0>";
txt_Mailtext03  = txt_Mailtext03 # "<colgroup> <col width=200> <col width=80> <col width=80> <col width=80> <col width=80> </colgroup>";
txt_Mailtext03  = txt_Mailtext03 # "<TR><TD bgcolor=A9D0F5><font size=1>Raum      </TD>";
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=A9D0F5><font size=1>Soll      </TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=A9D0F5><font size=1>Ventil    </TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=A9D0F5><font size=1>Ist       </TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=A9D0F5><font size=1>Batterie  </TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "</TR>";
txt_Mailtext03  = txt_Mailtext03 # "<TR><TD bgcolor=E6E6E6><font size=1>Aquarium                                                                                        </TD>";
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.SET_TEMPERATURE").Value().ToString(1)    # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.VALVE_STATE").Value().ToString(1)        # " %"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.ACTUAL_TEMPERATURE").Value().ToString(1) # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.BATTERY_STATE").Value().ToString(1)      # " V"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "</TR>";
txt_Mailtext03  = txt_Mailtext03 # "<TR><TD bgcolor=E6E6E6><font size=1>Wohnzimmer Aquarium                                                                             </TD>";
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.SET_TEMPERATURE").Value().ToString(1)    # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.VALVE_STATE").Value().ToString(1)        # " %"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.ACTUAL_TEMPERATURE").Value().ToString(1) # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.BATTERY_STATE").Value().ToString(1)      # " V"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "</TR>";
txt_Mailtext03  = txt_Mailtext03 # "<TR><TD bgcolor=E6E6E6><font size=1>Wohnzimmer Mitte                                                                                </TD>";
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.SET_TEMPERATURE").Value().ToString(1)    # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.VALVE_STATE").Value().ToString(1)        # " %"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.ACTUAL_TEMPERATURE").Value().ToString(1) # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.BATTERY_STATE").Value().ToString(1)      # " V"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "</TR>";
txt_Mailtext03  = txt_Mailtext03 # "<TR><TD bgcolor=E6E6E6><font size=1>Wohnzimmer Garten                                                                               </TD>";
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.SET_TEMPERATURE").Value().ToString(1)    # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.VALVE_STATE").Value().ToString(1)        # " %"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.ACTUAL_TEMPERATURE").Value().ToString(1) # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.BATTERY_STATE").Value().ToString(1)      # " V"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "</TR>";
txt_Mailtext03  = txt_Mailtext03 # "<TR><TD bgcolor=E6E6E6><font size=1>Esszimmer                                                                               </TD>";
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.SET_TEMPERATURE").Value().ToString(1)    # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.VALVE_STATE").Value().ToString(1)        # " %"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.ACTUAL_TEMPERATURE").Value().ToString(1) # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.BATTERY_STATE").Value().ToString(1)      # " V"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "</TR>";
txt_Mailtext03  = txt_Mailtext03 # "<TR><TD bgcolor=E6E6E6><font size=1>Gäste WC                                                                               </TD>";
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.SET_TEMPERATURE").Value().ToString(1)    # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.VALVE_STATE").Value().ToString(1)        # " %"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.ACTUAL_TEMPERATURE").Value().ToString(1) # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.BATTERY_STATE").Value().ToString(1)      # " V"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "</TR>";
txt_Mailtext03  = txt_Mailtext03 # "<TR><TD bgcolor=E6E6E6><font size=1>Kinderzimmer Jannik                                                                               </TD>";
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.SET_TEMPERATURE").Value().ToString(1)    # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.VALVE_STATE").Value().ToString(1)        # " %"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.ACTUAL_TEMPERATURE").Value().ToString(1) # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.BATTERY_STATE").Value().ToString(1)      # " V"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "</TR>";
txt_Mailtext03  = txt_Mailtext03 # "<TR><TD bgcolor=E6E6E6><font size=1>Schlafzimmer                                                                               </TD>";
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.SET_TEMPERATURE").Value().ToString(1)    # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.VALVE_STATE").Value().ToString(1)        # " %"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.ACTUAL_TEMPERATURE").Value().ToString(1) # " °C" #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.BATTERY_STATE").Value().ToString(1)      # " V"  #   "</TD>"; 
txt_Mailtext03  = txt_Mailtext03 # "</TR>";

!txt_Mailtext03  = txt_Mailtext03 # "<TR><TD bgcolor=E6E6E6><font size=1>Badezimmer                                                                               </TD>";
!txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.SET_TEMPERATURE").Value().ToString(1)    # " °C" #   "</TD>"; 
!txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.VALVE_STATE").Value().ToString(1)        # " %"  #   "</TD>"; 
!txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.ACTUAL_TEMPERATURE").Value().ToString(1) # " °C" #   "</TD>"; 
!txt_Mailtext03  = txt_Mailtext03 # "    <TD bgcolor=E6E6E6><font size=1>" # dom.GetObject("BidCos-RF.xxxxxxxxxx:4.BATTERY_STATE").Value().ToString(1)      # " V"  #   "</TD>"; 
!txt_Mailtext03  = txt_Mailtext03 # "</TR>";

txt_Mailtext03  = txt_Mailtext03 # "</TABLE>";

txt_Mailtext99  = txt_Mailtext99 # "</BODY></HTML>";



!*************************************************************************
!Email senden
!*************************************************************************

! Mail-Header zusammensetzen 
string MailEmpfaenger = "xxx@xxx.xx";
string MailBetreff = "Statusmail HOMEMATIC";

! Mail-Text zusammensetzen
string MailText;
MailText = txt_Mailtext00 # txt_Mailtext01 # txt_Mailtext02 # txt_Mailtext03 # txt_Mailtext99; 

!Mail-Variablen initialisieren
string stdout;
string stderr;
string teilstr;
string sendmail = "";
string sendbetreff = "";
string mailto = "";

! Betreffzeile erstellen (Wörter am Leerzeichen trennen)
foreach(teilstr, MailBetreff.Split(" "))
{
sendbetreff = sendbetreff # "+" # teilstr;
}

! Mailtext erstellen (Wörter am Leerzeichen trennen)
foreach(teilstr, MailText.Split(" "))
{
sendmail = sendmail # "+" # teilstr;
}

! Empfänger erstellen (Wörter am Leerzeichen trennen)
foreach(teilstr, MailEmpfaenger.Split(" "))
{
mailto = mailto # "+" # teilstr;
}

! Eigentliche Mail absenden
system.Exec ("/bin/sh /etc/config/addons/mh/htmlmail.sh "# sendbetreff # " " # sendmail # " " # mailto, &stdout, &stderr);
}


Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“