Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Access 2016, automatisierte Mail über Exchange-Server

Begonnen von GerhardJ, November 08, 2024, 13:33:21

⏪ vorheriges - nächstes ⏩

GerhardJ

Hallo werte Experten,
ich vesende mit VBA aus Access eine Mail mit einem pdf-Attachment. Wenn die mail über Outlook versandt wird ist alles gut, die Mail kommt beim Empfänger richtig an. Wenn sie über den Exchange-Server versandt wird besteht sie beim Empfänger nur mehr aus einer wirren Menge von Zahlen und Buchstaben.
Mein einfacher Code dazu

Dim objOutlook As outlook.Application
Dim objmail As outlook.MailItem
Dim attach As String

Set objOutlook = CreateObject("Outlook.Application")
Set objmail = objOutlook.CreateItem(olMailItem)
With objmail
.To = Me.RP_MAIL
.Subject = MailText
.Attachments.Add attach, olCombination
.Display
.send ' Sendet die Email automatisch
End With

Ich mache ofenbar irgend etwas falsch - hab aber keine Ahnung. Vielleicht kann mir irgendwer auf die Sprünge helfen - vielen Dank im Voraus für Eure Hilfe.

PhilS

Der Code, den du zeigst, erstellt eine Email in Outlook.
Wie die Email dann versendet wird, hängt allein von der Outlook-Konfiguration ab.

Mir ist jetzt unklar, ob der gezeigte Code das Problem auslöst.
Wo ist der Unterschied zwischen "Outlook funktioniert" und "Exchange-Server erzeugt Datensalat"?

PS: Und wichtig: Ist es in beiden Fällen derselbe Empfänger oder verschiedene? - Evtl. liegt das Problem beim Empfänger der Emails?
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

GerhardJ

Hallo Phil, vielen Dank für Deine Mühe - der gleiche Code wird auf 2 verschiedenen Netzwerken ausgeführt. Eines nur mit Outlook, das andere mit Exchange-Server. Es wird mit dem Code eine Mail erzeugt, die ein PDF-File als Attachment hat. Die Mail wird in beiden Szenarien mit den gleichen Daten ausgeführt. Wenn die Mail aus dem Netz mit Outlook verschickt wird, erhält der Empfänger - egal wo - eine korrekte Mail mit PDF-File. Wenn die gleiche Mail aus dem Netz mit Exchange-Server verschickt wird ist die ankommende Mail kaputt. Das schaut dann etwa so aus :
'------------------------------------------
mit_freundlichen_?=
   =?iso-8859-1?Q?Gr=FC=DFen

Andreas
Bereichsleitung_Recycling
?=
   =?iso-8859-1?Q?

FN4788?=
Date: Wed, 6 Nov 2024 14:13:57 +0100
Message-ID: <000001db304d$bdc12b50$394381f0$@h-h.co.at>
MIME-Version: 1.0
Content-Type: multipart/mixed;
   boundary="----=_NextPart_000_0001_01DB3056.1F862F90"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AdswTYDUWF6Scz2uSuubwwG1w4zgsA==
Content-Language: de

This is a multipart message in MIME format.

------=_NextPart_000_0001_01DB3056.1F862F90
Content-Type: multipart/alternative;
   boundary="----=_NextPart_001_0002_01DB3056.1F8656A0"


------=_NextPart_001_0002_01DB3056.1F8656A0
Content-Type: text/plain;
   charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

=20

=20

mit freundlichen Gr=FC=DFen

=20
'-----------------------------------------------------------
das Attachment ist etwa so :
'-----------------------------------------------------------
div.WordSection1
   {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DDE =
link=3D"#0563C1" vlink=3D"#954F72" style=3D'word-wrap:break-word'><div =
class=3DWordSection1><p class=3DMsoNormal><o:p>&nbsp;</o:p></p><p =
class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal><span =
lang=3DDE-AT =
style=3D'color:#1F497D;mso-ligatures:none;mso-fareast-language:DE-AT'>mit=
 freundlichen Gr=FC=DFen<o:p></o:p></span></p><p class=3DMsoNormal><span =
lang=3DDE-AT =
style=3D'color:#1F497D;mso-ligatures:none;mso-fareast-language:DE-AT'><o:=
p>&nbsp;</o:p></span></p><p class=3DMsoNormal><b><span lang=3DDE-AT =
'-------------------------------------------------------------------------

ich steh im Moment absolut daneben - hab aber mail-Versand über Exchange noch nie gemacht.

Knobbi38

Sieht wie die Quellcode-Anzeige der Mail aus. Aus der Sicht von Outlook gibt es zunächst mal keine Unterschiede im Code, ob der Smpt-Server ein Mailserver oder ein Exchange-Server ist. Lediglich wenn man über Shared Accounts Mal versenden möchte, müßte das berücksichtigt werden.


markusxy

Zitat von: GerhardJ am November 08, 2024, 13:33:21.Attachments.Add attach, olCombination

Was soll olCombination eigentlich machen?

Laut Doku ist das ein OlUserPropertyType, was aber mit einem OlAttachmentType, der hier gefordert ist nichts zu tun hat.

Normalerweise verwende ich olByValue.

GerhardJ


GerhardJ

hier ist das Problem genau beschrieben :
https://learn.microsoft.com/en-us/exchange/troubleshoot/mailflow/message-body-shown-as-attachment

für mich ist das zu hoch - ich versteh nicht, wie ich daraus eine Verbesserung meines VBA-Programms ableiten soll

PhilS

Zitat von: GerhardJ am November 11, 2024, 13:56:12hier ist das Problem genau beschrieben :

https://learn.microsoft.com/en-us/exchange/troubleshoot/mailflow/message-body-shown-as-attachment

für mich ist das zu hoch - ich versteh nicht, wie ich daraus eine Verbesserung meines VBA-Programms ableiten soll
Ich halte es für fragwürdig, ob der verlinkte Text dein Problem beschreibt.
Verwendet ihr noch Exchange Server 2010?
Dass Outlook als Anwendung betroffen ist, lese ich in dem Text nicht. - Welche Outlook Version wird eigentlich dort verwendet, wo das Problem auftritt?

Ich denke nicht, dass die Ursache für den Fehler in deiner VBA-Programmierung liegt oder durch eine Änderung dort korrigiert werden kann. Das Problem tritt entweder beim Senden der Email von Outlook an den Exchange-Server, bei der Übermittlung zwischen den Mailservern, oder beim Empfänger auf. - Mit all dem hast du (über VBA) nichts zu tun.

Apropos Empfänger: Tritt das Problem bei einem einzigen Empfänger auf, oder bei allen?

Was passiert, wenn der Benutzer manuell eine Email mit demselben Attachment an denselben Empfänger verschickt?

Was passiert, wenn du über VBA eine Email ohne Attachment verschickst?


Zitat von: GerhardJ am November 09, 2024, 07:44:41Wenn die gleiche Mail aus dem Netz mit Exchange-Server verschickt wird ist die ankommende Mail kaputt. Das schaut dann etwa so aus :
In der von dir geposteten Email ist so einiges seltsam. 
Z.B. haben die Mailheader innerhalb der Email nichts verloren.
Warum hat die Email zwei verschiedene Texte?
Eine PDF-Attachment ist in der Email überhaupt nicht zu sehen. - Das was du als Attachment bezeichnest ist der HTML-Quellcode der Email. Allerdings auch irgendwie verstümmelt.

Ich kann im Moment nicht beurteilen, ob das was du gepostet hast, wirklich das ist, was bei einem Empfänger ankommt (ich zweifle daran), oder ob das von dir noch mehr durcheinander gebracht wurde, als es ursprünglich schon war.


Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

GerhardJ

#8
Das, was ich am 9.11. gepostet habe, ist ein Ausschnitt(!) der Mail, die auf meinem Rechner ankommt. Die Mail ist mehrere Seiten lang. Auf meinem Rechner wird Office 2021 Pro verwendet, am entfernten rechner kann ich im Moment nicht nachschauen, ich vermute aber die gleiche Version. Das Attachment ist eine pdf-Datei und die ist auch vorhanden. Wenn ich das gleiche Programm auf meinem Rechner verwende kommt zumindest auf den beiden Rechnern, um die es geht, ein richtiges Ergebnis an. Eine mail ohne PDF-Attachment ist auf beiden Rechnern in beide Richtungen OK.

Zitat>>Was passiert, wenn der Benutzer manuell eine Email mit demselben Attachment an denselben Empfänger verschickt?<<
Habe ich noch nicht ausprobiert - kommt aber in nächster Zeit.

Welcher Exchange-Server da ist kann ich nicht sagen. Der gepostete Email-Ausschnitt ist von mir unverändert und ist genau die gleiche Mail, die ich mit dem gleichen Programm einwandfrei versenden kann. Welches Attachment da dran hängt, ist egal, es ist in Richtung ZU MIR immer falsch, in Richtung VON MIR immer OK. Das Attachment ist immer ein PDF-File, das mit Access als Bericht erzeugt wird.

Jetzt ist's wahrscheinlich noch verwirrender. Aber wir werden dafür eine Lösung finden, ev. muss von Hand eingegriffen werden.


Debus

Hallo,

habt Ihr auf dem Exchange vielleicht Gruppenrichtlinien? Damit ist gemeint, der eine darf sowas empfangen und der andere nicht. Dann würde es das erklären.

Und vielleicht kannst Du Code demnächst auch als Code Posten ist einfacher zu lesen. - Danke

Gruß Holger

Knobbi38

Hallo Gerhard,

wäre schön, wenn du die Frage aus #4 mal beantworten würdest.

Hast du KB969854 auch genau studiert? Dort wird beschrieben, daß es in Abhängigkeit von der Geschwindigkeit des Exchangeservers Probleme mit der Reihenfolge der Verarbeitung von Body und Attachment gibt. Wo wird dein Body für die Mail eigentlich festgelegt bzw. zugewiesen?

Bevor du jetzt weitere Ursachenforschung betreibst, solltest du vielleicht erstmal die offensichtlichen Ungereimtheiten ausräumen.

Gruß
Knobbi38
 

 

GerhardJ

Hi knobbi38

das war nur ein Versuch, ob das irgendwas bewirkt. Mittlerweile hab ich auch das vorgeschlagene olByValue probiert. Bringt keine Änderung am Ergebnis, jetzt läuft es ohne zusätzlichen Parameter - Ergebnis gleichbleibend.

Zu >wo wird der body zugewiesen<<. Das stimmt, dass das im Beispiel fehlt. Es geht bei der Mail nicht um den Body sondern nur um das attachment. Muss zugeben, dass ich das mit .body noch nicht probiert habe. Das wird am Wochenende geschehen.

Zur Frage aus #8 >> was passiert..von Hand...<<. Hab das heute mal auf MEINER Maschine ausprobiert - mit Body und großem Attachment - ist OK. Auf der zweiten Maschine kommt das auch am Wochenende dran.

Gruß /  Gerhard

GerhardJ

Werte Forumsteilnehmer

Zunächst ein Danke an Alle, die sich bemüht haben, mir zu helfen.

Die Ursache für den Fehler – PDF-Dokument wird beim Versand als Mail ,,zerstört" – wurde gefunden. Die Ursache hat mit Exchange-Server oder IMAP / POP3 überhaupt nichts zu tun – tut mir leid, für alle, die ich in diese ,,Falle" gelockt habe. Ich habs nicht besser gewusst. Ich bin sogar der Meinung, dass es mit meinem Programm nur wenig zu tun hat. Dies deswegen, weil bei einem Provider die Mail richtig versandt wurde, beim anderen falsch.
Die Mail hatte keinen ,,Body".  Mein Provider hat das richtig erkannt und die Mail auch richtig versandt. Der Andere hat ganz einfach – ha, da fehlt der Body ! – das Attachement zum Body gemacht, und das gibt bei PDF ein Chaos. Und das Attachment hat er weggelassen. Ich halte das für ein ,,Unachtsamkeit" in dem Programm, das die Mail des Kunden zum Versand aufbereitet. Ein Fehler(?) in den Daten wird nicht erkannt und dadurch erhält der Versender keine Nachricht, dass seine Mail irgendwo unbrauchbar landet.

Ich hab mein Programm geändert und jetzt läuft der Mailversand auf allen Rechnern – nochmals danke für die Bemühungen.

Gerhard