Ich versuche, E-Mail von unserem ERP-System zu senden. Ich habe versucht, mit SMTP, aber es funktioniert nur für interne E-Mails und scheitert für externe E-Mail beschweren sich nicht zu Relais oder etwas. Ich denke, der Manager möchte oder will nicht, wie man Exchange richtig konfiguriert.Wie automatisieren Sie Outlook?
Also mein Chef sagte mir, Outlook zu verwenden. Das Problem ist, dass mein Code im Debug funktioniert, aber fehlschlägt, wenn Outlook geöffnet ist, was es in fast jedem Fall sein wird. Ich habe es geschafft, die Installation der Verkäufer zu modifizieren, aber wir würden es vorziehen, dies nicht zu tun. Wir verwenden Intuitive ERP 8.5. Es speichert seine Bibliotheksdateien im Standardordner, und es gibt einen benutzerdefinierten Ordner für jeden benutzerdefinierten Code oder geerbte Anbieterobjekte.
Program Files \ IntuitiveERP.exe Programme \ IntuitiveERP \ Custom Programme \ IntuitiveERP \ Standard-
Wenn ich das Programmverzeichnis auf der Wurzel C setzen: und die Standard- und kundenspezifischen kombinieren Ordner der Code funktioniert ob Outlook geöffnet oder geschlossen ist. Wir würden es vorziehen, die Installation des Herstellers nicht zu ändern, da dies zu Problemen bei Aktualisierungen führen kann.
'Fails with Cannot create ActiveX component.
objOutlook = CType(CreateObject("Outlook.Application"), Outlook.Application)
'Fails with Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005.
objOutlook = New Outlook.Application
mobjEmail = CType(objOutlook.CreateItem(Outlook.OlItemType.olMailItem), Outlook.MailItem)
With mobjEmail
.CC = strEmployeeEmail
.Subject = String.Format(Constants.RFQ.Email.Subject, strRFQID)
.To = strTo
.Body = Constants.RFQ.Email.Body
.Attachments.Add(String.Format(Constants.RFQ.Output.FullPath, strRFQID))
.Display(True)
End With
Eine Idee, wie Sie einen Verweis auf Outlook erhalten, wenn es geöffnet ist? Irgendwelche alternativen Lösungen?
Wenn SMTP fehlgeschlagen ist, was gibt Ihnen die Idee, dass Outlook nicht? – Ares
Verwenden Sie Outlook nicht. Das ist so ein Hack. Dann muss Outlook überall dort installiert werden, wo Ihre App läuft. Verwenden Sie SMTP, und weisen Sie sie an, die Relays in Exchange zu konfigurieren. Es ist, was es ist (und es ist nicht zu schwierig, um ehrlich zu sein). –
@Ares - Da SMTP aufgrund von Sicherheitsbedenken explizite Relays in Exchange "zulassen" muss, um zu verhindern, dass bösartige Software E-Mails von Ihrem Server abwirft. Outlook ist anders; Es wurde für die Verwendung mit Exchange in einer AD-Domäneneinstellung entwickelt und verwendet kein SMTP. –