| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| AMB |
Autor
|
Thema: VBA: E-Mail mit VBA verschicken (2011 mal gelesen)
|
Spirou85 Mitglied Konstruktuer und CAD-Betreuer
Beiträge: 70 Registriert: 01.12.2014 HP ZBook 15 G5 Intel Xeon 2,9 GHz - 32GB Ram NVIDIA Quadro P2000M Windows 10 Pro 64Bit Version 1809 Build 17763.1098 SWX2020-64Bit-SP1.0 MaxxDB 2020 SP0.06 DraftSight Enterprise 2019 x64 SP3 3DCONNEXION SpaceMouse Enterprise mit CadMouse
|
erstellt am: 14. Apr. 2015 14:12 <-- editieren / zitieren --> Unities abgeben:
Hallo Makroexperten, hat jemand von Euch schon mal per VBA E-Mails verschickt? Hintergrund ist, dass wir per Makro beim Speichern von Teilen deren Abmessungen prüfen und mit einer Liste von Lagermaterial gegenchecken. Ist das Material nicht auf dieser Liste dann soll eine Mail verschickt werden damit dieses Material rechtzeitig beschafft werden kann. Hab in der API-Hilfe gesucht aber nichts gefunden. Vielleicht gibts ja was und ich habe es nur nicht gefunden. Oder muss ich ne Verknüpfung zu Outlook machen und dann Outlook von SWX aus steuern um meine Mail zu verschicken?
------------------ Viele Grüße aus Brackenheim Lars Pauly Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 14. Apr. 2015 14:33 <-- editieren / zitieren --> Unities abgeben: Nur für Spirou85
Hallo Lars, also eine reine SolidWorks Funktion gibt es zum Mail versenden nicht nur eine vom EPDM, hier musst du wohl aus der SolidWorks VBA auf die von Outlook oder ähnlichem zugreiffen. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd Knab Mitglied
Beiträge: 373 Registriert: 16.01.2001 SWX 2020 SP5.0
|
erstellt am: 14. Apr. 2015 14:47 <-- editieren / zitieren --> Unities abgeben: Nur für Spirou85
Hallo Lars, wir verwenden dazu blat. Ist ein kleines Mail Programm, welches über Kommandozeile gesteuert wird. Ist schlank und schnell. Wir steuern dies vom VBA Makro aus mit folgendem Code an: Const AppMail = "S:\Programmeblat\full\blat.exe" Const subjecttext = "S:\Programme\mail_subject.txt" Const bodytext = "S:\Programme\mail_body.txt" Const bodytexterror = "S:\Programme\mail_body_error.txt" Const signaturetext = "S:\Programme\mail_signature.txt" Const EmailAdmin = "bernd.knab@polyrack.com" Sub MailVersenden() Dim OldDir$, hProcess&, Result&, Task&, l&, x& Dim FileNrBody As Integer Dim FileNrBodyNew As Integer Dim Text As String If ExportErstellt = True Then BodytextNew = ExportDir & Katalognummer & ".txt" FileNrBody = FreeFile Open bodytext For Input As #FileNrBody FileNrBodyNew = FreeFile Open BodytextNew For Append As #FileNrBodyNew Do While Not EOF(FileNrBody) Line Input #FileNrBody, Text Print #FileNrBodyNew, Text Loop Print #FileNrBodyNew, Katalognummer & ".zip" Close #FileNrBody Close #FileNrBodyNew Task = Shell(AppMail & " -to " & EmailKunde & " -sf " & subjecttext & " -bodyf " & BodytextNew & " -sig " & signaturetext & " -attach " & ZipFilename, vbHide) Else Task = Shell(AppMail & " -to " & EmailKunde & " -sf " & subjecttext & " -bodyf " & bodytexterror & " -sig " & signaturetext, vbHide) Task = Shell(AppMail & " -to " & EmailAdmin & " -subject Error_Internetdownload -body " & Katalognummer & " -attach " & ReplyFile & "," & RequestFile, vbHide) End If hProcess = OpenProcess(SYNCHRONIZE, False, Task) Result = WaitForSingleObject(hProcess, INFINITE) Result = CloseHandle(hProcess) End Sub Vielleicht hilft dies. Gruß Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thisoft Mitglied Konstrukteur
Beiträge: 178 Registriert: 10.04.2010
|
erstellt am: 14. Apr. 2015 15:09 <-- editieren / zitieren --> Unities abgeben: Nur für Spirou85
Hallo Lars, unter VB.Net ("neue Makros") und Exchange-Server in der Domäne geht das auch ganz komfortabel so: Code: Imports System.Net.Mail Imports System.Net Imports System.Text.RegularExpressionsModule Module1 Public Function SendMail(Betreff As String, Inhalt As String) As Boolean Try Dim myClient As New Net.Mail.SmtpClient("FQDN des Exchange-Servers") myClient.Credentials = New Net.NetworkCredential("Benutzer", "Passwort") Dim myMail As New MailMessage myMail.To.Add("name@firma.xx") myMail.From = New MailAddress("absender@firma.xx") myMail.Subject = Betreff myMail.Body = Inhalt myClient.Send(myMail) SendMail = True Catch e As Exception MsgBox(e.Message) Return False End Try End Function
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
nahe Ehrenmitglied
Beiträge: 1747 Registriert: 18.01.2001 arbeite mit: Dell Precision 7750 i7 2,6 GHz 6 Kerne 32GB RAM 512GB SSD NVIDIA Quadro RTX 4000 ------------------------ SWX-2020 SP5.0 EPDM ---------------- Windows 10 ---------------- VB.net VB VBA ein wenig Swift am Mac
|
erstellt am: 14. Apr. 2015 15:55 <-- editieren / zitieren --> Unities abgeben: Nur für Spirou85
|
Spirou85 Mitglied Konstruktuer und CAD-Betreuer
Beiträge: 70 Registriert: 01.12.2014 HP ZBook 15 G5 Intel Xeon 2,9 GHz - 32GB Ram NVIDIA Quadro P2000M Windows 10 Pro 64Bit Version 1809 Build 17763.1098 SWX2020-64Bit-SP1.0 MaxxDB 2020 SP0.06 DraftSight Enterprise 2019 x64 SP3 3DCONNEXION SpaceMouse Enterprise mit CadMouse
|
erstellt am: 15. Apr. 2015 11:12 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, Vielen Dank für die schnellen Antworten. Habe die Version von nahe versucht da dies direkt in VBA ohne externes Programm funktioniert. Und über diese CDO-Schnittstelle hat es dann auch nach Anpassungen funktioniert. Damit ist mir gut geholfen worden. Also Vielen Dank nochmal für die Hilfen.
------------------ Viele Grüße aus Brackenheim Lars Pauly Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |