vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Access   |   VB-Versionen: VBA27.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ädtBewertung:  Views:  13.273 
ohne HomepageSystem:  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:

  1. jemand schrieb, dass er einfach den Mail-Text in den Betreff steckt
  2. ich feststellte, dass nur die erste Betreff-Zeile angezeigt wird
  3. ich den Text wieder in den Mail-Teil gesteckt habe
  4. 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...



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.