PDA

Vollständige Version anzeigen : ******** mit Attachment mittels CDO


TommyK
23.01.2004, 18:19
Hallo,

da jetzt der Betatest abgeschlossen ist (Thema s. http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=114655 )
möchte ich die Endversion vorstellen.

Vorher möchte ich erstmal dem Vater des Ganzen Pycoos für den Tipp und die Anregung danken.

Den größten Anteil an dem kleinen Programm haben aber Sascha und Scorefun, denen ebenfalls unser aller Dank gilt.
Und natürlich möchte ich auch allen Testern danken.

Kommen wir jetzt zum Eigentlichen:

Problemstellung:

Das Versenden von E-Mails mit Dateien im Anhang ist mittels der SendObject-Methode unter Access nur unzureichend möglich.
Es sollte ein Lösung gefunden werden, die im Grunde unabhängig vom jeweiligen installierten E-Mailprogramm ist.


Voraussetzungen:

Das Bsp ist unter A97, A00 und AXP lauffähig, unter A03 wurde es nicht getestet.
Die beiden Funktionen "ReadUntil" und "Split" im Modul "mod_Mail" von R.Kraasch sind nur unter A97 nötig, da diese erst ab A00 standardmäßig verfügbar sind.
Probleme gab es unter Win98 und manchmal unter NT4.

Funktionsweise:

Im Formular wird oben angezeigt ob derzeitig eine Verbindung ins Internet besteht und welcher Art die Verbindung ist.

Mittels des Buttons "Prüfung des Connect" kann die Anzeige aktualsiert werden.
Besethet keine Verbindung ist der "Senden" Button deaktiv.
Hier der Code der Funktion:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private</span> <span class="TOKEN">Const</span> INTERNET_CONNECTION_CONFIGURED = &amp;H40
<span class="TOKEN">Private</span> <span class="TOKEN">Const</span> INTERNET_CONNECTION_LAN = &amp;H2
<span class="TOKEN">Private</span> <span class="TOKEN">Const</span> INTERNET_CONNECTION_MODEM = &amp;H1
<span class="TOKEN">Private</span> <span class="TOKEN">Const</span> INTERNET_CONNECTION_OFFLINE = &amp;H20
<span class="TOKEN">Private</span> <span class="TOKEN">Const</span> INTERNET_CONNECTION_PROXY = &amp;H4
<span class="TOKEN">Private</span> <span class="TOKEN">Const</span> INTERNET_RAS_INSTALLED = &amp;H10
&nbsp;
<span class="TOKEN">Private</span> <span class="TOKEN">Declare</span> <span class="TOKEN">Function</span> InternetGetConnectedState <span class="TOKEN">Lib</span> &quot;wininet.dll&quot; (<span class="TOKEN">ByRef</span> lpdwFlags <span class="TOKEN">As</span> Long, _
<span class="TOKEN">ByVal</span> dwReserved <span class="TOKEN">As</span> <span class="TOKEN">Long</span>) <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
&nbsp;
<span class="TOKEN">Public</span> ret <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
&nbsp;
<span class="TOKEN">Function</span> INetConnect() <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> l_dwflags <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
&nbsp;
ret = InternetGetConnectedState(l_dwflags, 0&amp;)
<span class="TOKEN">If</span> ret = 0 <span class="TOKEN">Then</span> INetConnect = &quot;No Internet connection!&quot;: <span class="TOKEN">Exit Function</span>
<span class="TOKEN">If</span> (l_dwflags <span class="TOKEN">And</span> INTERNET_CONNECTION_CONFIGURED) <span class="TOKEN">Then</span> INetConnect = INetConnect &amp; _
&quot;Local system has a valid connection to the Internet, but it may or may not be currently connected.&quot;
<span class="TOKEN">If</span> (l_dwflags <span class="TOKEN">And</span> INTERNET_CONNECTION_LAN) <span class="TOKEN">Then</span> INetConnect = INetConnect &amp; _
&quot;Local system uses a local area network to connect to the Internet.&quot;
<span class="TOKEN">If</span> (l_dwflags <span class="TOKEN">And</span> INTERNET_CONNECTION_MODEM) <span class="TOKEN">Then</span> INetConnect = INetConnect &amp; _
&quot;Local system uses a modem to connect to the Internet.&quot;
<span class="TOKEN">If</span> (l_dwflags <span class="TOKEN">And</span> INTERNET_CONNECTION_OFFLINE) <span class="TOKEN">Then</span> INetConnect = INetConnect &amp; _
&quot;Local system is in offline mode.&quot;
<span class="TOKEN">If</span> (l_dwflags <span class="TOKEN">And</span> INTERNET_CONNECTION_PROXY) <span class="TOKEN">Then</span> INetConnect = INetConnect &amp; _
&quot;Local system uses a proxy server to connect to the Internet.&quot;
<span class="TOKEN">If</span> (l_dwflags <span class="TOKEN">And</span> INTERNET_RAS_INSTALLED) <span class="TOKEN">Then</span> INetConnect = INetConnect &amp; _
&quot;Local system has RAS installed.&quot;
&nbsp;
<span class="TOKEN">End</span> <span class="TOKEN">Function</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Der Rückgabewert ist vom Typ String. Ich hab die Funktion etwas dahingehend geändert das noch ein Wert in die öffentliche Variable "ret" geschrieben wird.
<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Public</span> ret <span class="TOKEN">As</span> <span class="TOKEN">Long</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)
Diese Variable lässt sich besser zur Demonstration auswerten.

Die Pflichtfelder im Formular müssen Angaben enthalten. Sollte in einem
oder mehreren Feldern Angaben fehlen wird nicht gesendet.

Eingaben:

SMTP Mail-Server:
hier muss die Adresse des jeweiligen SMTP-Servers angegeben werden, z.B. Telekom "mailto.t-online.de"

Für den Gebrauch wäre zu empfehlen die Adresse im Standardwert des Feldes einzugeben.

From:
E-Mailadresse des Absenders

To:
E-Mailadresse des Empfängers, es können mehrere Adressen, getrennt durch ";" angegeben werden.

CC:
E-Mailadresse des CC-Empfängers, es können mehrere Adressen, getrennt durch ";" angegeben werden. Diese Angabe ist Optional.

Subject:
Eingabe des Betreffs

Text Body:
Eingabe des E-Mail Textes

Datei:

Der Button "Attachment hinzufügen" ermöglicht Dateien als Anhang beizufügen.
Es wird ein normaler Datei-öffnen Dialog aufgerufen, auf den ich hier nich weiter eingehe.
Um mehrere Dateien hinzu zufügen muss der Datei-Dalog mehrfach aufgerufen werden.
Diese Angabe ist Optional.

Der Button "Alle Attachments löschen" löscht den Inhalt des Listenfeldes.

Der Button "Senden" ruft dann die Sub "Mail_senden" auf:
<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private</span> <span class="TOKEN">Const</span> cdoSendUsingMethod = &quot;http://schemas.microsoft.com/cdo/configuration/sendusing&quot;
<span class="TOKEN">Private</span> <span class="TOKEN">Const</span> cdoSMTPServer = &quot;http://schemas.microsoft.com/cdo/configuration/smtpserver&quot;
<span class="TOKEN">Private</span> <span class="TOKEN">Const</span> cdoSMTPServerPort = &quot;http://schemas.microsoft.com/cdo/configuration/smtpserverport&quot;
&nbsp;
<span class="TOKEN">Public Sub</span> Mail_senden(s_To <span class="TOKEN">As</span> String, s_From <span class="TOKEN">As</span> String, s_Subject <span class="TOKEN">As</span> String, s_TextBody <span class="TOKEN">As</span> String, s_mailserver <span class="TOKEN">As</span> String, s_CC <span class="TOKEN">As</span> String, <span class="TOKEN">Optional</span> s_Attachment <span class="TOKEN">As</span> <span class="TOKEN">String</span>)
<span class="REM">'Diese Prozedur versendet ein E-Mail, optional mit Attachment.</span>
<span class="TOKEN">Dim</span> eMail
<span class="TOKEN">Dim</span> s_attachment_array
<span class="TOKEN">Dim</span> i <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
&nbsp;
<span class="TOKEN">Set</span> eMail = CreateObject(&quot;CDO.Message&quot;)
<span class="TOKEN">With</span> eMail
&nbsp;
<span class="TOKEN">With</span> .Configuration.Fields
.Item(cdoSendUsingMethod) = 2 <span class="REM">'=cdoSendUsingPort</span>
.Item(cdoSMTPServer) = s_mailserver
.Item(cdoSMTPServerPort) = 25 <span class="REM">'=Standard, k&ouml;nnte aber auch abweichen</span>
.Update
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
&nbsp;
.To = s_To
&nbsp;
<span class="TOKEN">If</span> s_CC &lt;&gt; &quot;&quot; <span class="TOKEN">Then</span>
.CC = s_CC
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
.From = s_From
.Subject = s_Subject
.TextBody = s_TextBody
&nbsp;
<span class="TOKEN">If</span> s_Attachment &lt;&gt; &quot;&quot; <span class="TOKEN">Then</span>
<span class="REM"> '&Uuml;berpr&uuml;fen, ob es mehrere Anlagen gibt (separiert durch ein Semikolon)</span>
<span class="TOKEN">If</span> InStr(1, s_Attachment, &quot;;&quot;) &gt; 0 <span class="TOKEN">Then</span>
<span class="REM"> 'Zerlegen der Dateinamen in ein Array</span>
s_attachment_array = Split(s_Attachment, &quot;;&quot;)
<span class="REM"> 'Durchlaufe das array...</span>
<span class="TOKEN">For</span> i = <span class="TOKEN">LBound</span>(s_attachment_array) <span class="TOKEN">To</span> <span class="TOKEN">UBound</span>(s_attachment_array)
<span class="REM"> '...und wenn die Datei existiert</span>
<span class="TOKEN">If</span> Len(Dir(Trim(s_attachment_array(i)))) &gt; 0 <span class="TOKEN">Then</span>
<span class="REM"> 'F&uuml;ge sie als Anlage bei</span>
.AddAttachment Trim(s_attachment_array(i))
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="REM"> 'und zum n&auml;chsten Element in dem Array...</span>
<span class="TOKEN">Next</span> i
<span class="TOKEN">Else</span>
<span class="REM"> 'Nur eine Anlage vorhanden</span>
.AddAttachment s_Attachment
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
.Send
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
<span class="TOKEN">Set</span> eMail = <span class="TOKEN">Nothing</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Der Sub werden alle Argumente aus dem Formular übergeben:

Mailserver, From, To, Betreff, Mail Text, Optional CC und Optional Datei(en).


Ich kann natürlich keine Garantie übernehmen das es unter allen Systemkonfigurationen bzw. Mailprogrammen klappt.

Trotzdem hoffe ich das Ihr etwas damit anfangen könnt.

Download hier: ******** mit Attachment mittels CDO (http://www.ms-office-forum.net/daten/access/01_2004/116293.zip)

TommyK
30.01.2004, 18:46
Hallo,

Programm wurde erweitert.
Zusatz vom 30.01.2004

Ich habe die Downloadversion noch etwas erweitert.
Es ist eine Prüfung der eingegebenen E-Mailadressen auf Gültigkeit hinzu gekommen.
Es wird nicht das Vorhandensein sondern ob die Schreibweise eine gültige Adresse ist, geprüft.

Zuerst werden die E-Mailadressen, da man ja mehrere eingeben kann, zerlegt.
Die Funktion "GetArg" mit dem Parameter 0 ermittelt die Anzahl der vorkommenden Trennzeichen ";".
Diese Anzahl wird einer Zählschleife übergeben die wiederum mittels
der Funktion "GetToken" die jeweilige Adresse aus dem gesamten String extrahiert.
Dann erfolgt die Prüfung auf Gültigkeit.
Ist diese falsch wird die Schleife verlassen und die Sub beendet.
Die Funktion "MultiTestAdress" bündelt alles und gibt Falsch aus wenn eine
Adresse falsch ist:
<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private Function</span> MultiTestAdress(strAdress <span class="TOKEN">As</span> <span class="TOKEN">String</span>) <span class="TOKEN">As</span> <span class="TOKEN">Boolean</span>
<span class="REM">'*******************************************</span>
<span class="REM">'Name: MultiTestAdress (Function)</span>
<span class="REM">'Purpose: Pr&uuml;ft mehrere E-Mailadressen die sich in einem String befinden auf G&uuml;ltigkeit</span>
<span class="REM">'Author: Tommyk</span>
<span class="REM">'Date: Januar 30, 2004, 05:21:34</span>
<span class="REM">'Inputs:</span>
<span class="REM">'Output:</span>
<span class="REM">'*******************************************</span>
<span class="TOKEN">On Error GoTo</span> ErrHandler
&nbsp;
<span class="TOKEN">Dim</span> i <span class="TOKEN">As</span> Integer, intAnzAdress <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
<span class="TOKEN">Dim</span> strTmp <span class="TOKEN">As</span> <span class="TOKEN">String</span>
&nbsp;
MultiTestAdress = <span class="TOKEN">True</span>
intAnzAdress = GetArg(strAdress, 0, &quot;;&quot;)
&nbsp;
<span class="TOKEN">If</span> Left(strAdress, 1) = &quot;;&quot; <span class="TOKEN">Then</span>
strTmp = Mid$(strAdress, 2)
<span class="TOKEN">Else</span>
strTmp = strAdress
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
<span class="TOKEN">For</span> i = 1 <span class="TOKEN">To</span> intAnzAdress
strTmpAdress = Trim$(GetToken(strTmp, i, &quot;;&quot;))
<span class="TOKEN">If</span> IsValidEmailAddress(strTmpAdress) = <span class="TOKEN">False</span> <span class="TOKEN">Then</span>
MultiTestAdress = <span class="TOKEN">False</span>
<span class="TOKEN">Exit For</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span> i
&nbsp;
ExitHere:
<span class="TOKEN">Exit Function</span>
ErrHandler:
<span class="TOKEN">Dim</span> strErrString <span class="TOKEN">As</span> <span class="TOKEN">String</span>
strErrString = &quot;Error Information...&quot; &amp; vbCrLf
strErrString = strErrString &amp; &quot;Error#: &quot; &amp; Err.Number
strErrString = strErrString &amp; &quot;Description: &quot; &amp; Err.Description
MsgBox strErrString, vbCritical + vbOKOnly, &quot;Function: MultiTestAdress&quot;
<span class="TOKEN">Resume</span> ExitHere
<span class="TOKEN">End</span> <span class="TOKEN">Function</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Der Code des Senden-Buttons würde dann darum ergänzt:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private Sub</span> cmd_Send_Click()
&nbsp;
<span class="TOKEN">Dim</span> c <span class="TOKEN">As</span> <span class="TOKEN">Control</span>
&nbsp;
<span class="TOKEN">For</span> <span class="TOKEN">Each</span> c <span class="TOKEN">In</span> Me.Controls
<span class="TOKEN">If</span> c.Tag = &quot;Pflicht&quot; <span class="TOKEN">And</span> IsNull&copy; <span class="TOKEN">Then</span>
MsgBox &quot;Ein Pflichtfeld wurde nicht gef&uuml;llt&quot;, 16, &quot;Fehler&quot;
c.SetFocus
<span class="TOKEN">Exit Sub</span>
<span class="TOKEN">Exit For</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span> c
&nbsp;
<span class="TOKEN">If</span> MultiTestAdress(Me.txt_To) = <span class="TOKEN">False</span> <span class="TOKEN">Then</span>
MsgBox &quot;Die Mailadresse &quot; &amp; strTmpAdress &amp; &quot; im Feld <span class="TOKEN">To</span> ist ung&uuml;ltig&quot; &amp; _
vbNewLine &amp; &quot;Bitte korrigieren!&quot;, vbCritical + vbOKOnly, &quot;Fehler!!!&quot;
GoTo ExitHere
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
<span class="TOKEN">Dim</span> str_CC <span class="TOKEN">As</span> <span class="TOKEN">String</span>
&nbsp;
<span class="TOKEN">If</span> IsNull(Me.txt_CC) <span class="TOKEN">Then</span>
str_CC = &quot;&quot;
<span class="TOKEN">Else</span>
str_CC = Me.txt_CC
<span class="TOKEN">If</span> MultiTestAdress(Me.txt_CC) = <span class="TOKEN">False</span> <span class="TOKEN">Then</span>
MsgBox &quot;Die Mailadresse &quot; &amp; strTmpAdress &amp; &quot; im Feld CC ist ung&uuml;ltig&quot; &amp; _
vbNewLine &amp; &quot;Bitte korrigieren!&quot;, vbCritical + vbOKOnly, &quot;Fehler!!!&quot;
GoTo ExitHere
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
&nbsp;
Mail_senden Me.txt_To, Me.txt_From, Me.txt_Sub, Me.txt_Body, Me.txtServer, str_CC, Me.lst_File.RowSource
ExitHere:
<span class="TOKEN">Exit Sub</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Download hier: ******** mit Attachment mittels CDO (http://www.ms-office-forum.net/daten/access/01_2004/116293.zip)

J_Eilers
02.02.2004, 00:23
Hi Tommy,

ich würd im letzten Post vielleicht die Smilya deaktivieren oder schauen, dass du den HTML-Code anpasst. Ansonsten ist fein :)

sodah
18.02.2004, 18:43
Superklasse. Aber leider brauchen die meisten SMTP-Server eine User-Authenzifizierung (Username, Passwort).
Vielleicht wisst Ihr ja, wie man diese noch integriert.

Was mir auch aufgefallen ist, dass sich viele Postfächer immer erst an den POP3-Account anmelden muessen, bevor sie den SMTP-Account freischalten.

Hondo
21.05.2004, 15:50
Hallo Tommy,
echt klasse dein Beispiel.
Ich hätte da noch ein paar Fragen, vorallem da ich mit CDO bislang noch nichts gemacht habe.

1. wozu der Verweis auf VBA Extensibility?
2. was sind das für Serveradressen?
Private Const cdoSendUsingMethod = "http://schemas.microsoft.com/cdo/configuration/sendusing"
Private Const cdoSMTPServer = "http://schemas.microsoft.com/cdo/configuration/smtpserver"
Private Const cdoSMTPServerPort = "http://schemas.microsoft.com/cdo/configuration/smtpserverport"
Kann ich davon ausgehen dass dies auch noch in z.B. 10 Jahren funktioniert?

Gruß Andreas

TommyK
03.06.2004, 16:00
Hallo Hondo,

war im Urlaub deshalb antworte ich erst heute.

1. wozu der Verweis auf VBA Extensibility?
In der Downloadversion ist doch dieser Verweis garnicht gesetzt. Zumindest bei mir.

2. was sind das für Serveradressen?

Sieh Dir mal den Orginalbeitrag an http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=114655
Dort hat Sascha ein paar Ausführungen dazu gemacht.

Kann ich davon ausgehen dass dies auch noch in z.B. 10 Jahren funktioniert?
:D Frag mal Big Billy. Spass beiseite ich weiß es nicht.

Hondo
03.06.2004, 16:35
Hallo Tommy,
danke für die Antwort.

Gruß Andreas

Horge29
17.11.2004, 14:58
Hallo Tommy und alle anderen interessierten Forumteilnehmer,

der im Orginalbeitrag schon berichtete Fehler: "Laufzeitfehler '-2147220960 (80040220)'" trat bei mir auch auf.

Diese Fehlermeldung tritt bei dem Befehl "Email.Send" auf, wenn der Port 25 (SMTP) durch einen Router oder eine Firewall beblockt ist. In meinem Fall habe ich die Firewall für den Rechner auf dem die DB laufen soll geöffnet und damit war die Sache erledigt.

Allen anderen die selber nicht auf die Firewallregeln zugreifen dürfen kann ich leider keinen Tipp geben.

TommyK
21.11.2004, 14:13
Hallo Horge,

besten Dank für den Hinweis. :grins:

Harry B.
26.01.2006, 23:30
Beim Versuch eine E-Mail zu versenden kommt die folgende Fehlermeldung:

Laufzeitfehler '-2147220978 (8004020e)':

The server rejected the sender address. The server response was: 550 5.7.0 {mp037}.
Need to authenticate via SMTP-AUTH-Login

Meine Eingaben waren:
SMTP Mail-Server: mail.gmx.net
From: Meine Adresse@gmx.de
To: Andere Adresse@gmail.com
Subject: Test Subject
Text Body: Test Body

Was muss ich ändern, um den E-Mail-Versand hinzubekommen?

Danke für eine Antwort!

TommyK
27.01.2006, 05:30
Hallo Harry,

hast Du hier (http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=114655) den Orginalbeitrag gelesen?

Aber bei Freemailern klappt es nicht immer.

Harry B.
27.01.2006, 16:32
Ja, den Thread habe ich gelesen. Ich meine auch irgendwo gelesen zu haben, dass jemand die Konstanten, in den "http://..." abgelegt ist, um eine Zeile erweitert hat, damit das mit der erforderlich Autentifizierung klappt. Ich werde es nochmal suchen und dort nochmal fragen, wie er das gemacht hat.


//Heureka!

Bei den Konstanten im Modul mod_mail ist Folgendes zu ergänzen:

Private Const cdoSMTPauthenticate = "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
Private Const cdoSendUserName = "http://schemas.microsoft.com/cdo/configuration/sendusername"
Private Const cdoSendPassword = "http://schemas.microsoft.com/cdo/configuration/sendpassword"
Private Const cdoSMTPUseSSL = "http://schemas.microsoft.com/cdo/configuration/smtpusessl"


Im selben Modul ist in der Prozedur Mail_senden Folgendes zu ergänzen:

.Item(cdoSMTPauthenticate) = 1 '
.Item(cdoSendUserName) = "nnnnnn" ' Der Benutzername (bei gmx ist das die Nummer; meine ist noch niedrig-sechstellig!:))
.Item(cdoSendPassword) = "..." ' Das Paßwort für den Mailzugang
.Item(cdoSMTPUseSSL) = False '


Dann klappt es mit dem Mailen über gmx! :)

TommyK
28.01.2006, 16:30
Hallo Harry,

danke für die Lösung.
Werde es im Download anpassen.

ralle1-de
01.07.2007, 11:02
Hallo,

Nach langem hin und her habe ich bei mir endlich die beiden Laufzeit-Fehler
gefunden.

Als erstes war meine Firewall "im Weg". Sie sperrte Access. Hätte
man warscheinlich gleich drauf kommen können :-))

Und dann - wieder ein Laufzeitfehler -
diesmal wurde ich vom Server zurückgewiesen.
Nun, ich habe unter der Zeile Serverport noch die Zeile
SendPassword eingefügt und es funktioniert.

Also, großen Dank und LOB !!!!!!

Hier mein geänderter Code:
With .Configuration.Fields
.Item(cdoSendUsingMethod) = 2 '=cdoSendUsingPort
.Item(cdoSMTPServer) = s_mailserver 'eigenen SMTP-Server eintragen
.Item(cdoSMTPServerPort) = 25 '=Standard, könnte aber auch abweichen
.Item(cdoSendPassword) = "xyz123" 'Passwort habe ich hierangefügt!!!
.Update
End With


Gruß

Ralle1-de

TommyK
05.12.2007, 11:03
Hallo,

hier könnt Ihr eine neue Version downloaden:
Versenden von E-Mails mit Dateianhängen mittels CDO-Message Library (http://www.access-beispiele.tommyk-webbox.de/bsp_sonstiges.php#sons_cdo)
Dort ist der Tipp von Rall1-de integriert zur Übergabe der Zugangsdaten bei Freemailern bzw. anderen Mailhostern.