Neuigkeiten:

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

Mobiles Hauptmenü

Sammelemail automatisch versenden

Begonnen von smily68, November 26, 2013, 11:49:42

⏪ vorheriges - nächstes ⏩

smily68

Hallo

Ich möchte ein Sammelemail versenden. Mit meinem Code muss ich aber bei jedem Email noch den Senden Knopf drücken, damit es gesendet wird und das nächste Email aufbereitet wird. Wie müsste der Code aussehen, damit das Email automatisch gesendet wird?

Private Sub cmdVersenden_Click()

    Dim strEMail As String
    Dim rsAuswahl As DAO.Recordset
   
    Set db = CurrentDb
    Set rsAuswahl = Me!sfrBuchenHotelSession.Form.RecordsetClone

    If rsAuswahl.RecordCount > 0 Then
        rsAuswahl.MoveFirst
        Do Until rsAuswahl.EOF
            If rsAuswahl!hotSes_Buchen = True Then
                intHotel = rsAuswahl!hotel_ID
                strEMail = DLookup("hotel_EMail", "tblHotel", "hotel_ID = " & intHotel)
                DoCmd.OpenReport "rptHotelBuchung", acViewPreview, , "hotSes_Hotel_IDF = " & intHotel, acHidden
                Reports!rptHotelBuchung.Caption = "Gästeliste"
                DoCmd.SendObject acSendReport, "rptHotelBuchung", "PDFFormat(*.pdf)", strEMail, , , "Gästeliste Session 2013", "Sie erhalten die aktuelle Gästeliste"
                DoCmd.Close acReport, "rptHotelBuchung"
            End If
            rsAuswahl.MoveNext
        Loop
    End If
    Set rsAuswahl = Nothing

End Sub


Gruss Daniel


smily68

Hallo Franz

Ich habe die Einstellung gefunden, danke. Es funktioniert soweit gut, nur kommt nun ein anderes Problem zum Vorschein, zu welchem ich nach langem recherchieren im Internet keine Lösung gefunden habe.

Nun kommt eine Fehlermeldung von Outlook 2010:

Anwendung versucht Nachrichten in ihrem Auftrag zu versenden.

Weiter Hilfe: E-Mail-Sicherheit Warnmeldung unterdrücken.

Um dies zu unterdrücken habe ich im Outlook im Punkt: Programmgesteuert Zugriff auf , Bei verdächtigen Aktivitäten nie Warnhinweis anzeigen.
Doch dies hat nichts gebracht.

Ich habe das Programm Advanced Security for Outlook installiert, doch nun fehlt mir das DLL CDO.dll, im Internet habe ich gelesen, dass das CDO.dll nicht mehr von Outlook 2010 unterstützt wird.

Wer kann mir sagen, wie ich diese Warnmeldung unterdrücken kann?

Gruss Daniel


DF6GL

Hallo,

kenne jetzt das Verhalten von Outlook und CDO an dieser Stelle nicht genau. 


Tipps, die helfen könnten:

--Das Progrämmchen "Clickyes" probieren.
--Im Code nicht .Send , sondern .Display einsetzen und ausnahmsweise den "Senden"-Button mit SendKeys "drücken".

Auf Outlook (für diesen Zweck) ganz verzichten und die Mails mit der SendMail.DLL oder über API/WinSock versenden.


smily68

Für die Organisation für die ich das Access-Programm schreibe, verwendet Windows Live Mail. Also habe ich nun umgestellt und versuche es mit diesem Mail Programm.

Wenn ich beim Befehl DoCmd.SendObject am Schluss den Wert true für das Mail vor dem Senden noch bearbeitbar stelle, funktioniert es auch mit Windows Live Mail stelle ich diesen Wert auf False damit das Mail direkt versendet wird gibt es mir die folgende Fehlermeldung:

Laufzeitfehler 2293 Microsoft Access kann diese E-Mail nicht versenden.

Die Codezeile die diesen Fehler verursacht ist die folgende:

DoCmd.SendObject acSendReport, "rptHotelBuchung", "PDFFormat(*.pdf)", strEMail, , , "Gästeliste Session 2015", "Sie erhalten die aktuelle Gästeliste", False

Kann mir jemand dabei helfen.

Andere Frage, Franz hat von sendmail.dll gesprochen. Davon habe ich keine Ahnung. Wie kann ich diese dll gebrauchen, gibt es dazu irgend eine Anwendungsbeschreibung oder so was?

Gruss Daniel

DF6GL

Hallo,

such einfach mal mit einer Suchmaschine nach "Sendmail.dll" ...

smily68

Hallo

Ich finde im Internet keine Artikel der mir etwas über die Anwendung von sendmail.dll erklärt. Es gibt vieles das ich gefunden habe, aber alle Beispiele und Musterlösungen, die ich gefunden habe beziehen sich auf Outlook oder auf das Standard-Email Programm das sich auf dem PC befindet.

Mein Kunde hat Windwos Live Mail und ich kann die Funktion dass sich das Email nicht zum Bearbeiten öffnet nicht unterdrücken, sobald ich sie mit false unterdrücke bekomme ich einen Fehler.

                    DoCmd.SendObject acSendReport, "rptHotelBuchung", "PDFFormat(*.pdf)", strEMail, , , "Session 2015", "aktuelle Gästeliste", False

Ich habe auch im Internet ein Access-Muster gefunden, dass nicht das Standard-Email Programm benützt, sonder alles mit Access löst. Doch ich bringe es nicht zum laufen. Wer kann sich diese Muster-Access Lösung mal ansehen. Ich habe es auf dieser Seite gefunden http://www.freeaccess.de/downloaddetails.asp?ID=19

Ich bin ein wenig verzweifelt. Ich komme einfach nicht weiter.




DF6GL

#7
Hallo,

was geht denn nicht an dieser Beispiel-DB?

Hast Du die Grundeinstellungen für die pop- und smtp-Server richtig vorgenommen?

Welches Betriebssystem benutzt Du?

PS:  Schick mir mal Deine Email-Adresse in einer  PN ...

smily68

hallo Franz

Ich gehe davon aus, dass die Mail Einstellungen richtig sind. Ich werde dir die Angaben von meiner Testmail Adresse senden.

Gruss Daniel

smily68

Hallo Franz

Ich habe gestern vergessen dir zu schreiben mit welchem Betriebssystem ich arbeite: Windows 7 64 Bit

In meinem Verzeichnis windows\sysWOW64 war Winsock.dll nicht vorhanden. Ich habe dieses vom Internet runtergeladen und es in das verzeichnis kopiert. Danach wollte ich es mit regsvr32 registrieren, aber es gibt mir dabei eine Fehlermeldung. Ich weiss nicht ob es für die 64bit version einen anderen registrierungsbefehl gibt.

Ich weiss nicht ob mein Problem mit dem WinSock.dll zusammenhängt.

Ich hoffe du hast meine EMail Daten erhalten. Ich habe sie dir persönlich gesendet.

Gruss Daniel

DF6GL

Hallo,

habe keine Email erhalten....nur eine PN mit der Test-Mailadresse und nicht Deine richtige und ereichbare  ...


Das Problem kann durchaus mit der dll zusammenhängen..

Vermutlich braucht es eine 64 bit-Version der winsock.dll


smily68

hallo Franz

Gemäss meinen Recherchen ist das DLL für 32 und 64 Bit

Extract winsock.dll from winsock.zip. We recommend that you extract winsock.dll to the installation directory of the program that is requesting winsock.dll.

If that doesn't work, you will have to extract winsock.dll to your system directory. By default, this is:

C:\Windows\System (Windows 95/98/Me)
C:\WINNT\System32 (Windows NT/2000)
C:\Windows\System32 (Windows XP, Vista, 7)

If you use a 64-bit version of Windows, you should also place winsock.dll in C:\Windows\SysWOW64\

Make sure overwrite any existing files (but make a backup copy of the original file).

Reboot your computer

If the problem still occurs, try the following:

Open Windows Start menu and select "Run...".
Type CMD and press Enter (or if you use Windows ME, type COMMAND)).
Type regsvr32 winsock.dll and press Enter.

Gruss Daniel

DF6GL

Hallo,

ja gut,  dann sollte die Registrierung schon gelingen.. 

Zitat"aber es gibt mir dabei eine Fehlermeldung"   
Meine Glaskugel zeigt die leider nicht an...

smily68

Hallo Franz

Im Anhang die Fehlermeldung



smily68

Lieber Franz

Vielen Dank für deine Muster DB  :) Ich bin leider erst jetzt dazugekommen sie auszuprobieren.

Beim Austesten kommt nun folgende Fehlermeldung:

Abbruch wegen folgendem Grund: Authentication required

Im Code vom Formular habe ich folgende Aenderungen gemacht:

SMTPHost = "mail.gmx.net" ' Required the fist time, optional thereafter
.From = "informatik.user@gmx.ch" ' Required the fist time, optional thereafter
.FromDisplayName = "informatik-user"

.UserName = "informatik.user@gmx.ch" ' Optional, default = Null String
.Password = "informatik.user" ' Optional, default = Null String, value is NOT saved
.POP3Host = "pop.gmx.de"

.SMTPPort = 587 ' Optional, default = 25

Ich habe auch folgende Fragen:
Wo gebe ich den die Empfänger EMail Adresse ein im Formular 1?
Wo kann ich den Verweis für die dll einbinden oder kontrollieren?

Liebe Grüsse

Daniel