Невозможно преобразовать экземпляр класса Account
в строку:
Dim Send_Address As String
Dim Prompt As String
' Check Send_From name
Send_Address = Item.SendUsingAccount
Свойство SendUsingAccount
возвращает или устанавливает объект Account
, представляющий учетную запись, под которой MailItem должен быть отправлен. Свойство SendUsingAccount
можно использовать для указания учетной записи, которая должна использоваться для отправки MailItem
при вызове метода Send
. Это свойство возвращает Null
(Nothing
в Visual Basi c), если учетная запись, указанная для MailItem
, больше не существует. Например, вот пример использования:
Sub SendUsingAccount()
Dim oAccount As Outlook.account
For Each oAccount In Application.Session.Accounts
If oAccount.AccountType = olPop3 Then
Dim oMail As Outlook.MailItem
Set oMail = Application.CreateItem(olMailItem)
oMail.Subject = "Sent using POP3 Account"
oMail.Recipients.Add ("someone@example.com")
oMail.Recipients.ResolveAll
Set oMail.SendUsingAccount = oAccount
oMail.Send
End If
Next
End Sub
Итак, чтобы проверить SMTP-адрес, вам необходимо использовать следующий код:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim account as Outlook.Account
Dim Send_Address As String
Dim Prompt As String
' Check Send_From name
Set account = Item.SendUsingAccount
If Not account Is Nothing then
Send_Address = account.SmtpAddress
Select Case Send_Address
Case "example@domain.uk"
Case Else
Prompt = "You are currently sending this email from " & Send_Address & "" & vbNewLine & "Do you want to proceed?"
If MsgBox(Prompt, vbYesNo + vbQuestion + vbMsgBoxSetForeground, "Check Address") = vbNo Then
Cancel = True
End If
End Select
End If
End Sub