Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2012, 16:02   #1
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию Отправить сообщение.

Здравствуйте уважаемые программисты.При нажатии на гиперссылку создаётся Сообщение в Microsoft Office WordMail, (для почты установлен Microsoft Office Outlook по умолчанию). Напишите пожалуйста код, чтобы его отправить.Скриншот сообщения.jpg
Вложения
Тип файла: rar Гиперссылка.rar (1.6 Кб, 15 просмотров)
agregator вне форума Ответить с цитированием
Старый 25.10.2012, 16:05   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Есть тысяча способов отправить почту.
Через тот же Outlook, программно сформировав письмо,
или ещё проще, отправив книгу методом thisworkbook.sendMail

Вы - первый, кто пытается это сделать путем нажатия на гиперссылку...


Цитата:
(добавлено модератором - может, кому пригодится)
Посмотрите самый простой способ, как организовать отправку почты (рассылку писем)
(с использованием программы заполнения документов по шаблонам, с последующей отправке по почте)

В программе есть возможность формировать письма по шаблону (с подстановкой данных из таблицы Excel),
прикреплять сформированные документы и файлы из выбранной папки, и много других возможностей.


Последний раз редактировалось EducatedFool; 12.01.2013 в 11:35.
EducatedFool вне форума Ответить с цитированием
Старый 25.10.2012, 16:30   #3
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

EducatedFool, мне надо отправить сообщение где в поле текста вставлена таблица. Сообщение создается, но никак не могу найти код, чтобы его отправить
Код:
Sub Отправка2()
ThisDocument.SendMail
End Sub
Отправляет сообщение как вложение, а мне надо, чтобы таблица была в тексте сообщения. Т.к. в письме из водоканала написали "ВАЖНО! Обработка корреспонденции происходит в автоматическом режиме. При составлении электронного письма не используйте вложенные файлы. Скопируйте и заполните таблицу, представленную выше. Не добавляйте иную информацию, не указанную в правилах заполнения!"


Скриншот сообщения2.jpg

Последний раз редактировалось agregator; 25.10.2012 в 18:23.
agregator вне форума Ответить с цитированием
Старый 25.10.2012, 17:52   #4
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

Как отправить просто текст из таблицы нашёл здесь.
Код:
Function Send_Mail(ByVal MailTo As String, ByVal MailFrom As String, _
                    ByVal MailSubject As String, ByVal MailText As String, _
                    Optional ByVal MailAttachment As String = "") As Boolean
     ' функция для отправки почты без использования внешних почтовых программ
    ' ----------------------------------------------------------------------
    ' в качестве параметров получает:
    ' MailTo - адрес получателя письма
    ' MailFrom - адрес отправителя письма
    ' MailSubject - тема письма
    ' MailText - текст письма
    ' MailAttachment - полный путь к файлу вложения (необязательный параметр)
    ' ----------------------------------------------------------------------
    ' возвращает TRUE, если отправка почты произошла успешно, и FALSE в обратном случае

     Const cdoConfigURL = "http://schemas.microsoft.com/cdo/configuration/"
     On Error Resume Next: Err.Clear

     smtpserver = GetSetting(Application.Name, "mail", "smtpserver", "")
     sendusername = GetSetting(Application.Name, "mail", "sendusername", "")
     sendpassword = GetSetting(Application.Name, "mail", "sendpassword", "")
     If Len(smtpserver) = 0 Or Len(sendusername) = 0 Or Len(sendpassword) = 0 Then Exit Function

     Set cdoConfig = CreateObject("CDO.Configuration")
     With cdoConfig.Fields
         .Item(cdoConfigURL & "sendusing") = 2
         .Item(cdoConfigURL & "smtpauthenticate") = 1
         .Item(cdoConfigURL & "smtpserver") = smtpserver
         .Item(cdoConfigURL & "sendusername") = sendusername
         .Item(cdoConfigURL & "sendpassword") = sendpassword
         .Update
     End With

     Set cdoMessage = CreateObject("CDO.Message")
     With cdoMessage
         Set .Configuration = cdoConfig
         .BodyPart.Charset = "koi8-r"
         .From = MailFrom:
         .To = MailTo
         .Subject = MailSubject
         .TextBody = MailText
         If Len(MailAttachment) > 0 Then .AddAttachment MailAttachment
         .Send
     End With
     Set cdoMessage = Nothing: Set cdoConfig = Nothing

     '    If Err.Number = -2147220973 Then MsgBox ("Отсутствует связь с интернетом")
    '    If Err.Number = -2147220975 Then MsgBox ("SMTP сервер ответил отказом")
    '    If Err.Number = 0 Then MsgBox ("Письмо отправлено")
    Send_Mail = Err = 0
End Function

Sub SaveAccountData()    ' запускать один раз - для записи в реестр Windows параметров почтового аккаунта
    SaveSetting Application.Name, "mail", "smtpserver", "smtp.mail.ru"    ' Ваш SMTPServer
    SaveSetting Application.Name, "mail", "sendusername", "vasya_pupkin@mail.ru"    ' Ваша учетная запись
    SaveSetting Application.Name, "mail", "sendpassword", "pup123456"    ' Ваш  пароль
End Sub

Sub Отправка()    ' Пример использования функции Send_Mail
   x = ActiveDocument.Tables(1).Range
    txt = x
     If Send_Mail("ivan_ivanov@mail.ru", "vasya_pupkin@mail.ru", "проверка отправки почты", txt) Then
         MsgBox "Письмо успешно отправлено", vbInformation
     Else
         MsgBox "Не удалось отправить письмо", vbExclamation
     End If
End Sub
Но как вставить в сообщение таблицу например из диапазона Range("A3:E9") или ActiveDocument.Tables(1).Range

Последний раз редактировалось agregator; 25.10.2012 в 18:28.
agregator вне форума Ответить с цитированием
Старый 25.10.2012, 18:16   #5
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Пример формирования таблицы здесь

Код:


MailText== "<html><body><div>" & _
"<h4><span style=""color: rgb(255, 0, 0); font-weight: bold;"">ПЕРВАЯ СТРОКА,красная и жирная
" & _
"</span></h4></div>" & _
"<h2>The <span style=""color: rgb(51, 204, 0);"">body </span>of this <span" & _
"style=""color: rgb(51, 102, 255);"">message will appear</span> in <span" & _
"style=""color: rgb(255, 0, 0);"">HTML</span>.</h2></body></html>"

    With cdoMessage
----------------
--------------
 .HtmlBody = MailText

  End With
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 25.10.2012, 20:29   #6
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

doober, спасибо за помощь. Скажите кто знает, как можно убрать предупреждение Outlook, чтобы оно не появлялось?

Предупреждение.jpg
agregator вне форума Ответить с цитированием
Старый 25.10.2012, 22:46   #7
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

нажмите кнопку справка, там написано как понизить безопасность и разрешить отправлять почту без данного сообщения
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 26.10.2012, 14:23   #8
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

В справке написано:
Программа пытается отправить сообщение с помощью команды Item.Send
Программа пытается автоматически отправить сообщение электронной почты с помощью команды Item.Send языка Microsoft Visual Basic Application (VBA) из Microsoft Outlook. Чтобы разрешить программе отправку сообщения, нажмите кнопку Да. Чтобы остановить программу, нажмите кнопку Нет. Если неизвестно, из какой программы отправляется сообщение и почему, нажмите кнопку Нет, чтобы избежать возможного распространения вирусов.

Примечание. Кнопка Да недоступна в течение первых пяти секунд после отображения сообщения.

в Outlook Сервис-Макрос (Безопасность низкая)
Где ещё понизить безопасность и как.

Последний раз редактировалось agregator; 26.10.2012 в 14:42.
agregator вне форума Ответить с цитированием
Старый 26.10.2012, 14:46   #9
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Снимок произвольной области.jpg
смотрите, правда у меня 2010
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 27.10.2012, 07:36   #10
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

У меня 2003. Может можно это свойство отключить Макросом. Например если в Outlook 2010 есть макрорекордер, то можно его записать.
agregator вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправить сообщение вконтакте Pasha_Sh Работа с сетью в Delphi 12 07.05.2012 21:13
Отправить Сообщение в чужую программу Spawn.Ivan Общие вопросы Delphi 6 07.04.2012 11:57
Отправить сообщение вконтакт mish@ Работа с сетью в Delphi 13 16.05.2010 18:29
Отправить сообщение на факс Syltan Свободное общение 12 16.11.2009 20:10
Не получается отправить сообщение на сервер zver777 Работа с сетью в Delphi 8 26.10.2009 22:42