Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: MaxP am Mai 23, 2018, 11:16:49

Titel: A03: PDF per Mail verschicken
Beitrag von: MaxP am Mai 23, 2018, 11:16:49
Hallo zusammen,

ich arbeite mit A03 und möchte über meine DB PDF-Dateien als Anhang per Mail verschicken. Die PDF-Dateien werden von Berichten durch den Druckbefehl mit PDF24 erzeugt und händisch in einem Projektordner abgelegt.

Nach längerer Suche im Netz bin ich auf das angefügte Beispiel gestoßen.
Dieses heißt "Email versenden" (Vers. A02) von Klaus Oberdalhoff. Es heißt: "Sie "zapft" die WinSock.DLL direkt an und benötigt daher keine weitere DLL und nix."

Hierbei soll die Mail direkt in Access mittels Formular verschickt werden. Voraussetzung hierfür sind die richtigen Einstellungen zum Transport der Mail. Diese habe ich auch entsprechend eingestellt (s. Anlage), es gibt nach einer längeren Rechenzeit eine Ausgangsbestätigung in Access, jedoch kommt die Mail nicht am Empfänger an.

Kann es sein, dass die heutigen Pop3-Server durch neuere Authentifizierungen da nicht mitspielen? Reicht es dafür aus, die Pop3- und SMTP-Ports auf 995 bzw. 465 einzustellen? Ich habe mein Konto bei Strato.

Andernfalls wäre ich auch mit einfachen Lösungen zufrieden, die mit dem Standard-Emailprogramm (TheBat!) zusammen arbeiten.

Vielen Dank vorab.

Gruß
Max
Titel: Re: A03: PDF per Mail verschicken
Beitrag von: MaxP am Mai 23, 2018, 15:44:44
Habe nun inzwischen eine einfachere Lösung im Netz gefunden s. http://www.codekabinett.com/rdumps.php?Lang=1&targetDoc=email-versenden-access-vba-cdo (http://www.codekabinett.com/rdumps.php?Lang=1&targetDoc=email-versenden-access-vba-cdo)

Die 3. Funktion mit der Verschlüsselung funktioniert auch sehr gut. Nun möchte ich natürlich die festen Werte durch Variabeln ersetzen. Leider stolpere ich mal wieder über meine schlechten VBA-Kenntnisse.

   z.B.: .Subject = "First email with CDO"

Nun habe ich erst die Variabel definiert:
   Dim emailBetreff As String

daraus wird:
   .Subject = emailBetreff

Wie kann nun über das Formular frmTest und das Textfeld emailBetreff der Wert an die Funktion übergeben werden?

Ist vermutlich total easy. Danke vorab.

Gruß
Max
Titel: Re: A03: PDF per Mail verschicken
Beitrag von: Beaker s.a. am Mai 23, 2018, 18:00:59
Hallo,
Übergebe "emailBetreff" als Parameter an die Function
DeineFunction(ByVal emailBetreff As String, ...)
(das Dim ist dann überflüssig)
Aufruf vom Formular
Call DeineFunction(emailBetreff:=Me.DeinTextfeld, ...)
(... = weitere Parameter falls benötigt/vorhanden)

gruss ekkehard
Titel: Re: A03: PDF per Mail verschicken
Beitrag von: MaxP am Mai 24, 2018, 09:44:52
Hallo Ekkehard,

nach einem ersten Versuch hat es funktioniert! Super!

Ich denke, die anderen Variablen lassen sich genauso deklarieren.
Danke dir!

Gruß
Max
Titel: Re: A03: PDF per Mail verschicken
Beitrag von: MaxP am Mai 24, 2018, 19:16:20
Hallo,

nun habe ich die Funktion ausgebaut und noch die eMail-Felder CC und BCC hinzugefügt. Solange alle Felder ausgefüllt sind, funktioniert es auch prima. Da dieses aber in der Realität eher unwahrscheinlich ist und einige leer bleiben, wird eine Fehlermeldung heraus gegeben:

"Unzulässige Verwendung von Null"

Der fehlerhafte (markierte) Code lautet bei mir:

Private Sub Befehl0_Click()
Call SendSimpleCDOMailWithAuthenticationAndEncryption(emailTo_List:=Me.emailTo_List, emailCC_List:=Me.emailCC_List, emailBCC_List:=Me.emailBCC_List, emailBetreff:=Me.emailBetreff, emailText:=Me.emailText, emailAnlage:=Me.emailAnlage)
End Sub


Warum führen leere Fehler (Null) zum Fehler? Was muss ich anders machen, um das zu vermeiden?

Danke vorab.

Gruß
Max
Titel: Re: A03: PDF per Mail verschicken
Beitrag von: Beaker s.a. am Mai 24, 2018, 21:43:36

Call DeineFunction(emailBetreff:=Nz(Me.DeinTextfeld, ""), ...)
Titel: Re: A03: PDF per Mail verschicken
Beitrag von: MaxP am Mai 25, 2018, 10:25:44
Vielen Dank Ekkehard,

so funktioniert es, wie es soll!

Gruß
Max