Как использовать поле со списком для выбора адреса электронной почты и пароля для создания писем - PullRequest
0 голосов
/ 19 февраля 2020

Надеясь, кто-то может помочь. Мы перешли с Outlook на Gmail, и мне нужна база данных Access для создания писем, которые отправляются одним нажатием кнопки. Раньше это работало для Outlook, и я адаптировал код для Gmail, и он отлично работает, за исключением того, что, если я не хочу жестко задавать имя пользователя и пароль электронной почты, он, кажется, не хочет забирать его из выпадающего списка. на основной форме? Я проверил комбо-боксы работают с текстовым полем, и они работают нормально. Я просто получаю ошибку ниже. Есть идеи?

enter image description here

Private Sub Email_Allocation_List_Click()

Dim newMail As CDO.Message
Dim mailConfiguration As CDO.Configuration
Dim fields As Variant
Dim msConfigURL As String

On Error GoTo errHandle

Set newMail = New CDO.Message
Set mailConfiguration = New CDO.Configuration

mailConfiguration.Load -1

Set fields = mailConfiguration.fields

With newMail
    .Subject = "subject"
    .From = [Forms]![Main form]![EmailAddress].Column(1)
    .To = "email address"
    .CC = "email address"
    .BCC = ""
    .TextBody = "Hello, " & vbNewLine & vbNewLine & _
      "Please find attached todays list of lines to be allocated." & _
       vbNewLine & vbNewLine & "Kind Regards." & vbNewLine & vbNewLine & "Carly"
    .AddAttachment "file location"
End With

msConfigURL = "http://schemas.microsoft.com/cdo/configuration"

With fields
    .Item(msConfigURL & "/smtpusessl") = True
    .Item(msConfigURL & "/smtpauthenticate") = 1

    .Item(msConfigURL & "/smtpserver") = "smtp.gmail.com"
    .Item(msConfigURL & "/smtpserverport") = 465
    .Item(msConfigURL & "/sendusing") = 2

    .Item(msConfigURL & "/sendusername") = [Forms]![Main form]![EmailAddress].Column(1)
    .Item(msConfigURL & "/sendpassword") = [Forms]![Main form]![EmailAddress].Column(2)

    .Update

End With

newMail.Configuration = mailConfiguration
newMail.Send

MsgBox "E-Mail has been sent", vbInformation

exit_line:
'// Release object memory
Set newMail = Nothing
Set mailConfiguration = Nothing

Exit Sub

errHandle:

MsgBox "Error: " & Err.Description, vbInformation

GoTo exit_line

End Sub

1 Ответ

0 голосов
/ 20 февраля 2020

После большого количества возни, вы правы, код в порядке - и он правильно считывал содержимое поля со списком - однако GMail не принял информацию для входа в систему, если в письме была прописная буква адрес!!! Сейчас работает красиво.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...