Добрый день, я дико извиняюсь, но не нашёл аналогичной темы, хотя, скорее всего она есть Подскажите, что нужно добавить, чтобы сообщения не отправлялись с ящика "по-умолчанию", а отправлялись с той учетной записи, с которой мне необходимо Ниже код
Код
Sub test()
Dim objOutlookApp As Object, objMail As Object
Application.ScreenUpdating = False
On Error Resume Next
Set objOutlookApp = CreateObject("Outlook.Application")
objOutlookApp.Session.Logon
Set objMail = objOutlookApp.CreateItem(0) 'создаем новое сообщение
If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing: Exit Sub
On Error GoTo 0
'создаем сообщение
With objMail
.To = Range("A63").Value
.BCC = Range("A64").Value
.Subject = Range("A65").Value
.BodyFormat = 2 'olFormatHTML - формат HTML
.HTMLBody = ConvertRngToHTM(Selection)
.Display 'отображаем сообщение
End With
Set objOutlookApp = Nothing: Set objMail = Nothing
Application.ScreenUpdating = True
End Sub
по второй ссылке есть упоминание про профили: Session.Logon. Может Вы это имели ввиду? Потому что есть понятие учетки(это когда в одной сессии Outlook Вы видите два почтовых ящика и оба настроена на отправку и получение). Тогда надо применять SentOnBehalfOfName. Но если речь про два разных профиля в настройках почты(делается через панель управления) - тогда надо применять вход в Outlook(Logon) от нужного профиля с указанием имени и пароля.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Дмитрий, у меня получается вот такой Outlook, я пытаюсь с разных POP ящиков отправить сообщения, но всегда отправляется с первого, который по умолчанию стоит. Неужели, возможно это использовать только, когда Outlook закрыт через код ниже:
Sub sendmail()
Dim objOutlookApp As Object, objMail As Object
Dim sTo As String, sSubject As String, sBody As String, sAttachment As String
Application.ScreenUpdating = False
'пробуем подключиться к Outlook, если он уже открыт
Set objOutlookApp = GetObject(, "Outlook.Application")
Err.Clear 'Outlook закрыт, очищаем ошибку
If objOutlookApp Is Nothing Then
Set objOutlookApp = CreateObject("Outlook.Application")
End If
objOutlookApp.Session.Logon
lLastR = Cells(Rows.Count, 1).End(xlUp).Row 'определяем последнюю заполненную ячейку в столбце А
'цикл от второй строки(начало данных с адресами) до последней ячейки таблицы
For lr = 2 To lLastR
Set objMail = objOutlookApp.CreateItem(0) 'создаем новое сообщение
'создаем сообщение
With objMail
.To = Cells(lr, 1).Value 'адрес получателя
.CC = Cells(lr, 2).Value 'копия
.BCC = Cells(lr, 3).Value 'адрес для скрытой копии
.Subject = Cells(lr, 4).Value 'тема сообщения
.Body = Cells(lr, 6).Value 'текст сообщения
If Not IsEmpty(Cells(lr, 5)) Then
If Dir(Cells(lr, 5).Value) <> "" Then
.Attachments.Add Cells(lr, 5).Value
End If
End If
.SendUsingAccount = "testmail@mail.ru"
.Display 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
End With
Next lr
Set objOutlookApp = Nothing: Set objMail = Nothing
Application.ScreenUpdating = True
End Sub
Написал, но, всё также - отправка осуществляется с почты по умолчанию
Даже не знаю. Ознакомьтесь внимательно: Как отправить письмо от другой учетной записи Outlook возможно, имеет смысл вывести на лист все учетные записи(в статье есть готовые код) и сверить - верно ли указываете в коде(вдруг где пробел затесался, а Вы его не учли).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
возможно, имеет смысл вывести на лист все учетные записи(в статье есть готовые код) и сверить - верно ли указываете в коде(вдруг где пробел затесался, а Вы его не учли).
Учетные записи вывел на лист, .SentOnBehalfOfName = "account2@mail.thing" - работает хорошо, но это не подходит нам .SendUsingAccount = "account2@mail.thing" - не работает, макрос создаётся, но письма посылаются с почты по умолчанию
тут уже нечем помочь. Пробовали просто, без кодов, отправить от этой учетной записи? В каком виде письмо приходит? Получатель определяется как-то иначе?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Письмо получается в таком виде, если никаких макросов не использовать, а просто отправить Это как раз то что нужно, возможно ли такое в макросе провернуть Сейчас переставил почту по умолчанию на novo@ , но всё равно все сообщения созданные с помощью макроса отправляются с другой почты