gpt4 book ai didi

ms-access - MS Access 发送电子邮件(不是来自 Outlook 或用户的电子邮件)

转载 作者:行者123 更新时间:2023-12-02 19:59:48 30 4
gpt4 key购买 nike

我知道这个问题已经在不同的情况下被问过几次,但我还没有找到明确的答案。我已经使用 Outlook 为 Access 应用程序实现了电子邮件,但我想放弃这个。该电子邮件的目的之一是在用户忘记密码时通过电子邮件向其发送其/或密码。他们可以在登录屏幕上选择用户名,如果单击“忘记密码”,则会发送包含其登录信息的电子邮件(发送到与用户名关联的电子邮件地址)。

问题在于,电子邮件功能按原样从用户的计算机发送带有 Outlook 的电子邮件。因此,用户将能够“忘记密码”其他用户名并查看自己的 Outlook 发件箱(已发送邮件)以查看敏感信息。

有没有办法像php的mail函数一样,从服务器发送邮件?我希望从同一电子邮件地址(即(support@company.com))发送电子邮件,而不是在安全提示后从用户的 Outlook 地址发送。如果这是不可能的,我愿意接受任何其他解决方法的想法。

我还要补充一点,安装任何必须安装在每个潜在用户的计算机上的软件是不可行的。

这可能吗?

最佳答案

Windows 包含一个称为协作数据对象或 CDO 的对象。该对象允许您使用任何 SMTP 服务器发送电子邮件,前提是满足其他先决条件(防火墙打开、ISP 未阻止端口、在 SMTP 服务器上配置帐户、SMTP 服务器允许中继等)。

我发现的大多数示例都使用后期绑定(bind),这是首选。在我对 XP 的测试中,如果您更喜欢使用早期绑定(bind),正确的库引用似乎是“Microsoft CDO for Windows 2000 Library”。

重要的是要知道,每当您发送电子邮件时,您都必须通过(或从)某种电子邮件服务器发送它。这意味着您必须通过该电子邮件服务器进行身份验证,并且通常还意味着您需要使用该电子邮件服务器上存在的“发件人”电子邮件地址发送电子邮件。

这是一些使用后期绑定(bind)的代码:

Const cdoSendUsingPickup = 1
Const cdoSendUsingPort = 2
Const cdoAnonymous = 0
' Use basic (clear-text) authentication.
Const cdoBasic = 1
' Use NTLM authentication
Const cdoNTLM = 2 'NTLM

Public Sub SendEmail()
Dim imsg As Object
Dim iconf As Object
Dim flds As Object
Dim schema As String

Set imsg = CreateObject("CDO.Message")
Set iconf = CreateObject("CDO.Configuration")
Set flds = iconf.Fields

' send one copy with SMTP server (with autentication)
schema = "http://schemas.microsoft.com/cdo/configuration/"
flds.Item(schema & "sendusing") = cdoSendUsingPort
flds.Item(schema & "smtpserver") = "mail.myserver.com"
flds.Item(schema & "smtpserverport") = 25
flds.Item(schema & "smtpauthenticate") = cdoBasic
flds.Item(schema & "sendusername") = "email@email.com"
flds.Item(schema & "sendpassword") = "password"
flds.Item(schema & "smtpusessl") = False
flds.Update

With imsg
.To = "email@email.com"
.From = "email@email.com"
.Subject = "Test Send"
.HTMLBody = "Test"
'.Sender = "Sender"
'.Organization = "My Company"
'.ReplyTo = "address@mycompany.com"
Set .Configuration = iconf
.Send
End With

Set iconf = Nothing
Set imsg = Nothing
Set flds = Nothing
End Sub

关于ms-access - MS Access 发送电子邮件(不是来自 Outlook 或用户的电子邮件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11579730/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com