Rubrik: Access | VB-Versionen: VBA | 27.06.06 |
ACCESS SendObject und lange E-Mail Texte! Hier geht es um das (alte) Problem, dass Access per SendObject an vielen PCs längere EMail-Texte nur 1x senden kann und danach gar nicht mehr funktioniert. | ||
Autor: Richard Mittelstädt | Bewertung: | Views: 13.273 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Es geht um das (alte) Problem, dass ACCESS per "SendObject" an vielen PCs '"längere" E-Mail-Texte
- nur 1x senden kann und danach
- gar nichts mehr per SendObject gesendet werden kann (teils ohne Fehler-Meldung, teils mit "wirren" Fehlermeldungen)
Im I-Net habe ich als Lösung immer nur nur gefunden, dass man die Sache per Outlook-ApplicationObject erledigen sollte. Dass ein Rechner ohne Outlook, der nur das standardmäßig Outlook Express installiert hat, damit rein gar nichts anfangen kann, stand leider nicht dabei...
Auf nachfolgende Lösung des Problems bin ich dadurch gekommen, dass:
- jemand schrieb, dass er einfach den Mail-Text in den Betreff steckt
- ich feststellte, dass nur die erste Betreff-Zeile angezeigt wird
- ich den Text wieder in den Mail-Teil gesteckt habe
- BUMM: Alles Funktinierte !!! - Zufall: (Weil ich vergessen hatte, den langen Mail-Text aus der Betreff-Zeile wieder zu entfernen.
' ********************* Tests 2006-06-16 *********************************** ' PC1 (per Outlook) hat (glaube) ohne diesen Trick funktioniert bis: ' max. 16355 Leerzeichen nach Betreff ' max. 129720 Mail-Zeichen (ohne Leerzeichen nach Betreff) ' (bin mir aber nicht mehr so sicher...) ' PC2 (per Outlook Express) hat funktioniert bis: ' - ohne diese Trickserei: gut 2300 Zeichen E-Mail-Text ' - MIT diesem Trick bis: mehr als 200000 Zeichen E-Mail-Text !!! ' *************************************************************************** ' --------------------------------------------------------------------------- ' dh.(?), man könnte vorerst ruhig soviele Leerzeichen an den Betreff anhängen, ' wie der Mail-Text lang ist: ' TXT_BETR = TXT_BETR & Space(Len(TXT_MAIL)) ' --> Es hat sich herausgestellt, dass man für längere Mail-Texte ' auch tatsächlich längere Betreff-Zeilen benutzen muss ! ' Nun könnte man nach den Tests an diesen 2 PCs eine (Warn-) Grenze auf ' 100000 Zeichen (<129000) setzen, ' wahrscheinlich benehmen sich aber andere PCs noch "schlechter"... ' (bitte rückmelden... ) ' --------------------------------------------------------------------------- Public Function Test_SendObject() ' ********************* 2006-06-13 ein Wunder... **************************** ' * Langer Betreff-Text !!!, sonst bei LANGEN Mail-Texten (Body): * ' * - Ausführung nur beim 1. Mal !!!!!!!!! * ' * --- Hier eine Test-Funktion --- * ' *************************************************************************** Dim TXT_MAIL Dim TXT_BETR Dim t1, t2 Dim i Dim MAX_MAIL ' Maximale Zeichen im Mail-Text On Error GoTo ERR_01 ' ---------- Hier mal dran "drehen" --------------- MAX_MAIL = 200000 ' Maximale Zeichen im Mail-Text ' ------------------------------------------------- t1 = "Dies ist der Betreff-Text." t2 = "Dies ist ein sehr langer E-Mail-Text." TXT_BETR = t1 For i = 1 To 30000 TXT_MAIL = TXT_MAIL & Format(i, "00000") & ". " & t2 & " TEST" & vbNewLine If Len(TXT_MAIL) > MAX_MAIL Then TXT_MAIL = Left(TXT_MAIL, MAX_MAIL) ' genaue Begrenzung auf MAX_MAIL ! Exit For End If Next i ' MsgBox Len(TXT_MAIL) TXT_BETR = TXT_BETR & Space(Len(TXT_MAIL)) ' Langer Betreff-Text !!! DoCmd.SendObject acSendModule, "Modul_TestSendObject", acFormatTXT, _ , , , TXT_BETR, TXT_MAIL, True ' DoCmd.SendObject acSendReport, "Bericht_TestSendobject", _ acFormatRTF, , , , TXT_BETR, TXT_MAIL, True Exit Function ERR_01: If Err.Number = 2501 Then ' Senden wurde abgebrochen... ' Nichts weiter unternehmen... Else MsgBox Err.Number & " " & Err.Description End If End Function
Ergänzung vom 02.04.08
Es ist mir passiert, dass ein Rechner auch mit diesem Code nicht senden konnte. Ich habe dann einfach weniger Leerzeichen an den Betreff angefügt (--> nicht die gleiche Zeichenanzahl wie die
Mail, sondern nur die Hälfte der Mail-Zeichen-Anzahl an den Betreff). Dieser Code geht bis jetzt auch für alle meine anderen Rechner...