Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
3 / 3 / 0
Регистрация: 20.11.2016
Сообщений: 88
Access

Отправка электронной почты посредством Thunderbird с указанием исходящего e-mail

08.08.2017, 11:30. Показов 1624. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Есть код работающий код VBA который отправляет электронку через Thunderbird.
Вот он исходный код:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Option Private Module
Option Explicit
 
Public Type ThunderbirdEMail
   EmailFormat            As Long ' 1= HTML-Mail, 2 = Nur-Text-Mail. Standard = 2
   SendenVonKonto         As Long ' ID des Sendkontos. Standard = 1
   Empfaenger             As String
   KopieAn                As String
   BlindKopieAn           As String
   Betreff                As String
   EMailText              As String
   Anhang                 As String
   OptionalDateiPfad      As String
End Type
 
Public NeueThunderbirdEMail  As ThunderbirdEMail
 
 
Public Function CreateThunderbirdEmailObject(Optional ProgrammPfad As String = _
"C:\Program Files (x86)\Mozilla Thunderbird\Thunderbird.exe")
                                             
Rem Variablendeklaration
Dim strMailAufbau   As String
Dim varAttachments  As Variant
Dim lngAttachCount  As Long
 
 
With NeueThunderbirdEMail
 
Rem Anzuhдngende Dateien auflisten
varAttachments = Split(.Anhang, ";")
 
Rem Email aufbauen
strMailAufbau = ProgrammPfad & " -compose format=" & .EmailFormat & ",preselectid=id" & .SendenVonKonto & _
                ",to='" & .Empfaenger & "',subject='" & .Betreff & "',body='" & .EMailText
                       
     Rem Prьfen auf "Kopie senden an"
     If .KopieAn <> "" Then
        strMailAufbau = strMailAufbau & "',cc='" & .KopieAn
     End If
     
     Rem Prьfen auf "Blindkopie an"
     If .BlindKopieAn <> "" Then
        strMailAufbau = strMailAufbau & "',bcc='" & .BlindKopieAn
     End If
 
     Rem Prьfen auf "Anhang setzen"
     If UBound(varAttachments) >= 0 Then
        strMailAufbau = strMailAufbau & "',attachment='file:///" & .OptionalDateiPfad & varAttachments(0)
        For lngAttachCount = 1 To UBound(varAttachments)
            strMailAufbau = strMailAufbau & "," & .OptionalDateiPfad & varAttachments(lngAttachCount)
        Next lngAttachCount
      End If
        strMailAufbau = strMailAufbau & "'"
        
    Rem Email erstellen
    Shell strMailAufbau, vbMaximizedFocus
 
End With
 
End Function
ВОПРОС1: как указать с какого аккаунта (у меня их несколько настроено) будет отправляться и-маил?
В комментариях к части кода которая за это отвечает указано что стандартный аккаунт это 1.
Я менял эту переменную на "2","3"... и в конце концов просто исключил из кода и это не принесло каких то проблемм с отправкой - все мэйлы отправляются как и раньше с главного аккаунта.
Было бы идеально если бы была возможность заранее в коде указать с какого аккаунта отправится мэйл.


ВОПРОС2: как автоматизировать процесс отправки так чтобы Thunderbird не открывая окно с новым мэйлом просто отправлял его? В стандартных макросах есть такая опция при отправке. Отчет просто отправляется получателю. Отпарвитель даже не замечает этого. Просто в дальйшем можно видеть отправленные мэйлы как отчет проделанной работы. Должен быть VBA аналог этогй опции. Кто нибудь уже сталкивался с таким?

Вот рабочий род непосредственно отправки. Он должен быть как то доработан.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Public Sub SendActiveWorkbookWithTunderbird()
 
Rem Aktive Datei speichern
ActiveWorkbook.Save
 
Rem Inhalt der Email zusammenstellen. Aktive Datei wird angehängt
With NeueThunderbirdEMail
     .EmailFormat = 1
     .SendenVonKonto = 2
     .Empfaenger = "empfaenger@example.com"
     .Betreff = "Test"
     .EMailText = "Hallo!<br><br>Nur ein Test.<br><br>Gruß,<br>Max"
     .Anhang = ActiveWorkbook.FullName
End With
 
Call CreateThunderbirdEmailObject
End Sub
Заранее благодарен всем кто откликнется.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.08.2017, 11:30
Ответы с готовыми решениями:

Отправка электронной почты в VB 6.0
Добрый день! Такой вопрос, как реализовать отправку сообщений пользователям используя список...

Отправка электронной почты с поддержкой HTML тегов
Всем привет. В прошлой теме мне помогли написать отправку почты со списком адресов из файла. Люди...

Создание темы при отправке писем, используя thunderbird
Помогите создать тему письма с кавычками, используя thunderbird Нужна тема письма, которая будет...

2
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
08.08.2017, 18:50
Дмитрий1905, Thunderbird обновлён до последней версии?

1)

Здесь есть полное описание ключей: http://kb.mozillazine.org/Thun... _Arguments
Там же пишут, что preselectid - это не просто цифра.

Попробуйте задавать вместо этого -profile или -p
Вот здесь есть подробнее об этом: https://developer.mozilla.org/... ne_Options

2)

Попробуйте -tray и/или -silent

Ещё как вариант, программно скрыть окно.
1
3 / 3 / 0
Регистрация: 20.11.2016
Сообщений: 88
10.08.2017, 16:16  [ТС]
Добрый день.
Dragokas, спасибо за Вашу помощь, вчера весь вечер изучал присланные Вами материалы, а так же настройки программы Thunderbird.

Оказывется что preselectid не обязательно должен быть числом. Я взял из расширенных настроек Thunderbird из окна обработки конфигураций следующую строку: mail.account.mail_dispo_tlt.identities, взяо из этой строки mail_dispo_tlt (это и есть искомый ключь указываюший на аккаунт исходящего сообщения) и добавил этот адрес после слова preselectid. Мне не нужно динамическое изменение аккаунта, но проблема была в том что это не основной мой аккаунт.

И все заработало!

Так было (это нормальный работающий вариант только со стандартного аккаунта):
Visual Basic
1
",preselectid=id" & .SendenVonKonto & _
а так стало:
Visual Basic
1
,preselectid='mail_dispo_tlt',
...если комуто нужно будет.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.08.2017, 16:16
Помогаю со студенческими работами здесь

Программная отправка текста по электронной почте
Пока не получается программно отправить текстовое письмо по электронной почте. Например, при...

Не работает добавление подписи при отправке сообщения по электронной почте
Всем здрасти помогите я его использую в екселе Sub...

Отправка книги или листа по электронной почте в формате XPS нескольким получателям + копии
Всем привет. Есть просто макрос для отправки текущего листа по почте: Sub SendSheet() ...

Отправка файла на почтовый ящик mail.ru
Подскажите пожалуйста как отправить выбранный файл в visual basiс 6.0 на почтовый ящик mail.ru, не...

Ошибка при отправке почты (ActiveWorkbook.SendMail Recipients:='ivan@mail.ru', Subject:='tema')
В excel XP написан макрос на отправку почты, в частности стока ActiveWorkbook.SendMail...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru