Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Отправка письма с аккаунта не по умолчанию - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Outlook » Отправка письма с аккаунта не по умолчанию
Отправка письма с аккаунта не по умолчанию
StoTisteg Дата: Вторник, 31.05.2016, 14:28 | Сообщение № 1
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
Коллеги, у меня тут такая проблема.Есть у меня на на работе Аутлук и есть в нём два аккаунта — отдельский в локалке (OTDEL@organization.loc) и личный в интернете (myname@sitename.ru). По дефолту я, видимо, нахожусь во втором и при создании письма вручную могу сменить отправителя на OTDEL@organization.loc и благополучно отправить с него письмо. Когда же я пытаюсь отправить письмо макросом:
[vba]
Код
    With Outlook.Application.CreateItem(olMailItem)
        On Error Resume Next
        .To = Columns(1).Find(what:=Workbooks("ОКАТО.xlsx").Worksheets(i).Name, lookat:=xlWhole).Offset(, 1)
        Workbooks("Список.xlsx").Activate
        .Subject = "Запрос"
        .SentOnBehalfOfName = "OTDEL@organization.loc"
        .Attachments.Add ThisWorkbook.Path & "\Письма\На места\" & ActiveSheet.Name & ".rar", olByValue, 1
        If .To <> "" Then .Send
    End With
[/vba]
письмо благополучно создаётся и даже правильно заполняется поле От, но Аутлук принимается ругаться:

"Нельзя отправить сообщение от лица этого пользователя без соответствующего разрешения. Убедитесь, что отправка осуществляется от лица правильного отправителя, или запросите необходимое разрешение. Если проблема будет возникать снова, обратитесь в службу технической поддержки"

Что я делаю не так и как мне сделать OTDEL@organization.loc "правильным отправителем"?


Проверь всё. ThisWorkbook.Save. On Error Resume Next.

Сообщение отредактировал StoTisteg - Вторник, 31.05.2016, 14:39
 
Ответить
СообщениеКоллеги, у меня тут такая проблема.Есть у меня на на работе Аутлук и есть в нём два аккаунта — отдельский в локалке (OTDEL@organization.loc) и личный в интернете (myname@sitename.ru). По дефолту я, видимо, нахожусь во втором и при создании письма вручную могу сменить отправителя на OTDEL@organization.loc и благополучно отправить с него письмо. Когда же я пытаюсь отправить письмо макросом:
[vba]
Код
    With Outlook.Application.CreateItem(olMailItem)
        On Error Resume Next
        .To = Columns(1).Find(what:=Workbooks("ОКАТО.xlsx").Worksheets(i).Name, lookat:=xlWhole).Offset(, 1)
        Workbooks("Список.xlsx").Activate
        .Subject = "Запрос"
        .SentOnBehalfOfName = "OTDEL@organization.loc"
        .Attachments.Add ThisWorkbook.Path & "\Письма\На места\" & ActiveSheet.Name & ".rar", olByValue, 1
        If .To <> "" Then .Send
    End With
[/vba]
письмо благополучно создаётся и даже правильно заполняется поле От, но Аутлук принимается ругаться:

"Нельзя отправить сообщение от лица этого пользователя без соответствующего разрешения. Убедитесь, что отправка осуществляется от лица правильного отправителя, или запросите необходимое разрешение. Если проблема будет возникать снова, обратитесь в службу технической поддержки"

Что я делаю не так и как мне сделать OTDEL@organization.loc "правильным отправителем"?

Автор - StoTisteg
Дата добавления - 31.05.2016 в 14:28
StoTisteg Дата: Среда, 01.06.2016, 11:55 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
Что-то вроде прояснилось, нужно перед созданием письма сменить учётную запис. Но вот как это сделать...


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
СообщениеЧто-то вроде прояснилось, нужно перед созданием письма сменить учётную запис. Но вот как это сделать...

Автор - StoTisteg
Дата добавления - 01.06.2016 в 11:55
_Boroda_ Дата: Среда, 01.06.2016, 12:07 | Сообщение № 3
Группа: Модераторы
Ранг: Экселист
Сообщений: 9822
Репутация: 4147 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Самая первая ссылка дает код. Не проверял
https://yandex.ru/search....C%20vba


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеСамая первая ссылка дает код. Не проверял
https://yandex.ru/search....C%20vba

Автор - _Boroda_
Дата добавления - 01.06.2016 в 12:07
StoTisteg Дата: Среда, 01.06.2016, 12:38 | Сообщение № 4
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
Да не компьюткра, а в Outlook'е...


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
СообщениеДа не компьюткра, а в Outlook'е...

Автор - StoTisteg
Дата добавления - 01.06.2016 в 12:38
_Boroda_ Дата: Среда, 01.06.2016, 12:43 | Сообщение № 5
Группа: Модераторы
Ранг: Экселист
Сообщений: 9822
Репутация: 4147 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Да, понимаю Вас, так намного сложнее.
https://yandex.ru/search....&lr=213
А там вот это
http://www.cyberforum.ru/vba/thread640412.html


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДа, понимаю Вас, так намного сложнее.
https://yandex.ru/search....&lr=213
А там вот это
http://www.cyberforum.ru/vba/thread640412.html

Автор - _Boroda_
Дата добавления - 01.06.2016 в 12:43
StoTisteg Дата: Среда, 01.06.2016, 13:01 | Сообщение № 6
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
Ага, это я тоже нашёл. Но там единственный рабочий способ не оставляет следов в Outlook'е :(
[moder]А почему тогда не написали в вопросе что-то типа
"Вот это, это и это пробовал, не подходит по таким-то причинам"?[/moder]


Проверь всё. ThisWorkbook.Save. On Error Resume Next.

Сообщение отредактировал _Boroda_ - Среда, 01.06.2016, 13:48
 
Ответить
СообщениеАга, это я тоже нашёл. Но там единственный рабочий способ не оставляет следов в Outlook'е :(
[moder]А почему тогда не написали в вопросе что-то типа
"Вот это, это и это пробовал, не подходит по таким-то причинам"?[/moder]

Автор - StoTisteg
Дата добавления - 01.06.2016 в 13:01
SLAVICK Дата: Среда, 01.06.2016, 13:33 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 1922
Репутация: 650 ±
Замечаний: 0% ±

2007,2010,2013,2016
Еще вариант отсюда - не тестировал(только одна учетка - на ней работает.) :
[vba]
Код
Sub Mail_small_Text_Change_Account()
'Only working in Office 2007-2016
'Don't forget to set a reference to Outlook in the VBA editor
    Dim OutApp As Outlook.Application
    Dim OutMail As Outlook.MailItem
    Dim strbody As String

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(olMailItem)

    strbody = "Hi there" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2" & vbNewLine & _
              "This is line 3" & vbNewLine & _
              "This is line 4"

    On Error Resume Next
    With OutMail
        .To = "ron@debruin.nl"
        .CC = ""
        .BCC = ""
        .Subject = "This is the Subject line"
        .Body = strbody

        'SendUsingAccount is new in Office 2007
        'Change Item(1)to the account number that you want to use
        .SendUsingAccount = OutApp.Session.Accounts.Item(1)

        .Send   'or use .Display
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
[/vba]
на сколько я понял выбор аккаунта менять в строке:
[vba]
Код
.SendUsingAccount = OutApp.Session.Accounts.Item(1)
[/vba]
просто заменив 1 на 2 (3....)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеЕще вариант отсюда - не тестировал(только одна учетка - на ней работает.) :
[vba]
Код
Sub Mail_small_Text_Change_Account()
'Only working in Office 2007-2016
'Don't forget to set a reference to Outlook in the VBA editor
    Dim OutApp As Outlook.Application
    Dim OutMail As Outlook.MailItem
    Dim strbody As String

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(olMailItem)

    strbody = "Hi there" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2" & vbNewLine & _
              "This is line 3" & vbNewLine & _
              "This is line 4"

    On Error Resume Next
    With OutMail
        .To = "ron@debruin.nl"
        .CC = ""
        .BCC = ""
        .Subject = "This is the Subject line"
        .Body = strbody

        'SendUsingAccount is new in Office 2007
        'Change Item(1)to the account number that you want to use
        .SendUsingAccount = OutApp.Session.Accounts.Item(1)

        .Send   'or use .Display
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
[/vba]
на сколько я понял выбор аккаунта менять в строке:
[vba]
Код
.SendUsingAccount = OutApp.Session.Accounts.Item(1)
[/vba]
просто заменив 1 на 2 (3....)

Автор - SLAVICK
Дата добавления - 01.06.2016 в 13:33
StoTisteg Дата: Четверг, 02.06.2016, 02:04 | Сообщение № 8
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
А почему тогда не написали в вопросе что-то типа "Вот это, это и это пробовал, не подходит по таким-то причинам"?

Потому что на момент публикации вопроса я ещё не пробовал. Ваш Капитан Очевидность :) а попробовал только после того, получил Ваш ответ, вставил в поисковый запрос слово Outlook и эта тема действительно оказалась первой. Спасибо, кстати. hands


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
Сообщение
А почему тогда не написали в вопросе что-то типа "Вот это, это и это пробовал, не подходит по таким-то причинам"?

Потому что на момент публикации вопроса я ещё не пробовал. Ваш Капитан Очевидность :) а попробовал только после того, получил Ваш ответ, вставил в поисковый запрос слово Outlook и эта тема действительно оказалась первой. Спасибо, кстати. hands

Автор - StoTisteg
Дата добавления - 02.06.2016 в 02:04
StoTisteg Дата: Четверг, 02.06.2016, 02:08 | Сообщение № 9
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
.SendUsingAccount = OutApp.Session.Accounts.Item(1)

Хм. Завтра попробую... В объектной модели Аутлука вообще чёрт ногу сломит, по сравнению с ним даже Ворд прост и ясен :o И макрорекордером ещё не оборудован >(


Проверь всё. ThisWorkbook.Save. On Error Resume Next.

Сообщение отредактировал StoTisteg - Четверг, 02.06.2016, 02:13
 
Ответить
Сообщение
.SendUsingAccount = OutApp.Session.Accounts.Item(1)

Хм. Завтра попробую... В объектной модели Аутлука вообще чёрт ногу сломит, по сравнению с ним даже Ворд прост и ясен :o И макрорекордером ещё не оборудован >(

Автор - StoTisteg
Дата добавления - 02.06.2016 в 02:08
StoTisteg Дата: Пятница, 03.06.2016, 13:23 | Сообщение № 10
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
Нифига не выходит, хоть ты тресни :( Аккаунтов да, два, но оба почему-то пытаются отправить с одного и того же мыла...


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
СообщениеНифига не выходит, хоть ты тресни :( Аккаунтов да, два, но оба почему-то пытаются отправить с одного и того же мыла...

Автор - StoTisteg
Дата добавления - 03.06.2016 в 13:23
StoTisteg Дата: Пятница, 03.06.2016, 13:32 | Сообщение № 11
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
А вот именно этот код с изменением только адреса (ну и Item'а, ясен пень) — заработал. Видимо, всё дело в связывании, с ранним почему-то не хочет, желает позднего.
[p.s.] Да, так и есть — связывание. Меняем в том же коде
[vba]
Код
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(olMailItem)

...

    With OutMail
[/vba]
на
[vba]
Код
    With Outlook.CreateItem(olMailItem)
[/vba]
(при подключённой библиотеке, конечно) и код перестаёт работать.


Проверь всё. ThisWorkbook.Save. On Error Resume Next.

Сообщение отредактировал StoTisteg - Пятница, 03.06.2016, 13:45
 
Ответить
СообщениеА вот именно этот код с изменением только адреса (ну и Item'а, ясен пень) — заработал. Видимо, всё дело в связывании, с ранним почему-то не хочет, желает позднего.
[p.s.] Да, так и есть — связывание. Меняем в том же коде
[vba]
Код
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(olMailItem)

...

    With OutMail
[/vba]
на
[vba]
Код
    With Outlook.CreateItem(olMailItem)
[/vba]
(при подключённой библиотеке, конечно) и код перестаёт работать.

Автор - StoTisteg
Дата добавления - 03.06.2016 в 13:32
SLAVICK Дата: Пятница, 03.06.2016, 17:14 | Сообщение № 12
Группа: Модераторы
Ранг: Старожил
Сообщений: 1922
Репутация: 650 ±
Замечаний: 0% ±

2007,2010,2013,2016
А что такое Outlook в строке
[vba]
Код
With Outlook.CreateItem(olMailItem)
[/vba]

Нужно же сначала создать его:
[vba]
Код
Set OutApp = CreateObject("Outlook.Application")
[/vba]

Думаю дело в этом


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеА что такое Outlook в строке
[vba]
Код
With Outlook.CreateItem(olMailItem)
[/vba]

Нужно же сначала создать его:
[vba]
Код
Set OutApp = CreateObject("Outlook.Application")
[/vba]

Думаю дело в этом

Автор - SLAVICK
Дата добавления - 03.06.2016 в 17:14
StoTisteg Дата: Суббота, 11.06.2016, 14:12 | Сообщение № 13
Группа: Авторы
Ранг: Ветеран
Сообщений: 541
Репутация: 45 ±
Замечаний: 0% ±

Excel 2010
Это ранне связывание — в книге, разумеется, была подключена объектная модель Outlook'а. Но да, оказалось, чтодело именно в этом — наверно, смена аккаунта лежит в какой-то другой библиотеке, что довольно странно.


Проверь всё. ThisWorkbook.Save. On Error Resume Next.
 
Ответить
СообщениеЭто ранне связывание — в книге, разумеется, была подключена объектная модель Outlook'а. Но да, оказалось, чтодело именно в этом — наверно, смена аккаунта лежит в какой-то другой библиотеке, что довольно странно.

Автор - StoTisteg
Дата добавления - 11.06.2016 в 14:12
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Outlook » Отправка письма с аккаунта не по умолчанию
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!