从 MS Access 生成带有超链接的电子邮件
Posted
技术标签:
【中文标题】从 MS Access 生成带有超链接的电子邮件【英文标题】:Generating Email with Hyperlink from MS Access 【发布时间】:2016-01-15 17:03:30 【问题描述】:我正在尝试在运行特定程序并满足某些条件时从 MS Access 生成一封电子邮件,该电子邮件将包含一个超链接。我发现 sendobject 宏命令不允许超链接,只有静态文本。似乎解决方案是对在 VBA 中生成和发送电子邮件的整个过程的部分进行编码,并在我的宏中的 if 函数的适当部分中调用该代码。
但是,我无法找出合适的代码来生成和发送并通过电子邮件发送给个人的超链接。它将非常简单,单一接收者,不变的标题,并且正文将显示“新的提供者需要指定,请访问提供者指定仪表板以指定提供者”,理想情况下,提供者指定仪表板将是超链接和指向一个共享的网络空间。
我需要什么命令来完成这个,我对 VBA 缺乏经验,这占用了我没有的大量时间。
谢谢
【问题讨论】:
对电子邮件使用 htmlBody,然后使用 HTML 标签添加为链接 您是否正在运行 Outlook 来发送和接收邮件? 也许使用 vba 而不是宏会有所帮助 - 在电子邮件文本中包含超链接。看看这个:***.com/questions/17973549/… 我正在运行 Outlook。坚持使用 VBA 并使用 htmlbody 作为电子邮件参考是正确的解决方案,此时我对 VBA 非常不熟悉。我想这是我开始学习的时候了。 【参考方案1】:发送带有代码的电子邮件有一些不同的方法。下面的代码使用 Outlook 应用程序 COM 对象来生成带有超链接的消息 - 因此,只有在用户的机器上安装了 MS Outlook 时它才能工作。
Sub NewEmail(ByVal mylink As String, ByVal therecipient As String)
Dim Outlook As Object, Email As Object
Set Outlook = CreateObject("Outlook.Application")
Set Email = Outlook.CreateItem(0) 'olMailItem = 0
With Email
.Subject = "My Subject" 'message subject
.HTMLBody = "Greetings, please check this link: <a href='" & mylink & "'>Click me</a>." 'message body, in html. concatenate multiple strings if you need to
.To = therecipient 'recipient
'use this if you want to generate the message and show it to the user
.Display
'use this instead if you want the mail to be sent directly
'.Send
End With
Set Email = Nothing
Set Outlook = Nothing
End Sub
将代码放入模块中。然后在您的代码中的任何地方,您都可以使用以下内容调用该过程:
NewEmail "www.mysite.com/targetpage.html", "persontomail@domain.com"
请注意,上面的例程使用late binding。要使用早期绑定(并获得智能,但有一些缺点),您必须添加对 Microsoft Outlook XX.X 对象库的引用并将“Outlook”和“Email”对象调暗为 Outlook.Application 和 Outlook.MailItem,分别。
【讨论】:
为了清楚起见,我并不是将上述代码作为您实际场景的现成解决方案,就像您可以开始构建自己的解决方案一样以上是关于从 MS Access 生成带有超链接的电子邮件的主要内容,如果未能解决你的问题,请参考以下文章