Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Вывод данных из аксесса в тело письма в формате HTML  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 288
Всем привет! Помогите решить задачу. Надо из аксесс рассылать емейлы в формате HTML.
Например такой шаблон письма:
<h2>Напоминание.</h2>

<p>Уважаемый <strong>ИМЯ</strong>!</p>

<p>У Вас есть задолженность перед банком в сумме <span style="color:#16a085"><strong>СУММА</strong></span> рублей!</p>

<p>Просим погасить её до <strong>ДАТА</strong>.</p>
Вместо ИМЯ, СУММА, ДАТА мне надо вставить данные из соответствующих полей формы. Как их туда приклеить?
1 май 19, 15:46    [21876378]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
JDV
Member

Откуда:
Сообщений: 390
wladimirrr, через OutLook попробуйте
2 май 19, 11:40    [21876783]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 278
Что именно вам подсказать? Как "вставить данные" или как отправить?
Для замены ключевых слов на данные используйте функцию Replace, например:
s = Текст шаблона
s = Replace(s, "ИМЯ", Me![ИМЯ]
s = Replace(s, "СУММА", Format(Me![СУММА], "# ##0.00")
...

Отправлять лучше через CDO, вставляя текст в реквизит HTMLBody.
2 май 19, 12:05    [21876810]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 288
Кривцов Анатолий
Что именно вам подсказать? Как "вставить данные" или как отправить?
Для замены ключевых слов на данные используйте функцию Replace, например:
s = Текст шаблона
s = Replace(s, "ИМЯ", Me![ИМЯ]
s = Replace(s, "СУММА", Format(Me![СУММА], "# ##0.00")
...

Отправлять лучше через CDO, вставляя текст в реквизит HTMLBody.

Подсказать надо как "вставить данные".
Отправляю я через CDO, код следующий (нашел на форуме):
Function SendEmail4()
Dim msg As Object
Dim config As String
Set msg = CreateObject("CDO.Message")
config = "http://schemas.microsoft.com/cdo/configuration/"
With msg
.To = Forms!Info!Email
.From = "******@mail.ru"
.Subject = Forms!Info!Tema
.HTMLBody = Forms!Info!Info
With .Configuration.Fields
.Item(config & "sendusing") = 2
.Item(config & "smtpserver") = "smtp.mail.ru"
.Item(config & "smtpauthenticate") = 1
.Item(config & "smtpserverport") = 465
.Item(config & "sendusername") = "******@mail.ru"
.Item(config & "sendpassword") = "******"
.Item(config & "smtpusessl") = True
.Item(config & "smtpconnectiontimeout") = 60
.Update
End With
.send
End With
Set msg = Nothing
End Function

В поле Info я формирую текст в формате HTML (см. первый пост). Как мне в этот текст вставить значения полей ИМЯ, СУММА и ДАТА?
С функцией Replace не работал пока, если можно напишите подробнее, лучше с примером. Спасибо.
2 май 19, 19:46    [21877075]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
DarkMan
Member

Откуда:
Сообщений: 514
wladimirrr
В поле Info я формирую текст в формате HTML (см. первый пост).

В первом посте ничего конкретного не указано.
Если я правильно понял , то что Вы хотите , >>>>
wladimirrr
Вместо ИМЯ, СУММА, ДАТА мне надо вставить данные из соответствующих полей формы. Как их туда приклеить?
>>>> , то значения ИМЯ, СУММА, ДАТА Вы передаете как аргументы в функцию , а HTML код формируете здесь же в функции , и вместо значений вставляете переменные переданные как параметры в функцию.
Как то так наверное . :)

P.S
В скрипте PHP это выглядит примерно так .
+
                        $order_details=Orderdetail::where('order_id',$order_id)->get();	
			
			// Send Orders Email
			
			$to= $customer->email;
			$subject= "Uzsakymas Nr. :" . $order->order_number ;
				
			$headers="Mime-Version: 1.0\r\nContent-Type: text/html; 
			charset=utf-8\r\nFrom: email@email";
	 	
			$message= "Uzsakymas Nr. : " . $order->order_number . "<br>";
			$message .=  "Vardas : " . $customer->first_name . "<br>";
			$message .=   "Pavarde : " . $customer->last_name . "<br>";
			$message .=  "El.pastas : " . $customer->email . "<br>";
			$message .=   "Mob.telefonas: " . $customer->mob_phone . "<br>";
			$message .=   "Adresas : " . $customer->address .  " , " .
			$customer->city_id . " , " . $customer->post_code . "<br>" ;
	 	                             
			$message .="<table <table border=1px cellspacing=1 width=800px>";	
			$message .=   "<tr>" ;
			$message .=    "<th>Prekiu pavadinimas</th>";
			$message .=    "<th>Kiekis</th>";
			$message .=    "<th>Kaina</th>";
			$message .=    "<th>Is viso</th>";
				
			foreach($order_details as $value){
				$message .=  "<tr>";
				$message .= 	"<td>" . $value->product_name . "</td>";
				$message .= 	"<td align=center>" . $value->quantity . "</td>";
				$message .= 	"<td align=right>" . $value->price . "</td>";
				$message .= 	"<td align=right>" .  $value->quantity*$value->price . "</td>";
				$message .=  "</tr>";
			}
			$message .= "</table>";

			$message .= "<table width=800px>";
			$message .=  "<tr>";
			$message .= "<td align=right style=\"font-weight:bolder\"> Is viso : " 
			. $order->total . " &euro;  </td>";
			$message .=  "</tr>";
			$message .=  "<tr>";
			$message .= "<td align=right style=\"font-weight:bolder\">PVM ( 21% ) : " 
			. $order->tax_amount . " &euro; </td>";
			$message .=  "</tr>";
			$message .=  "<tr>";
			$message .= "<td align=right style=\"font-weight:bolder\">Kelioniu islaidos : "
			. $order->shipping_amount . " &euro;</td>";
			$message .=  "</tr>";
			$message .=  "<tr>";
			$message .= "<td align=right><span style=\"font-weight:bolder\">Is viso moketi : "
			. ($order->total_amount + $order->shipping_amount)  . " &euro;</span></td>";
			$message .=  "</tr>";
			$message .= "</table>";
				      
			mail($to,$subject,$message,$headers);
	 	        
			//$to='email@email';
			$to='email@email';		  
			mail($to,$subject,$message,$headers);			
			
			//End Send Email 
2 май 19, 20:15    [21877080]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
DarkMan
Member

Откуда:
Сообщений: 514
wladimirrr, Под понятием функция подразумевается Function SendEmail4() , надеюсь Вы догадались . :))
P.S
В приведенном примере в коде HTML используется таблица , я выложил навсякий случай , может Вам подойдет.
2 май 19, 20:21    [21877083]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 288
DarkMan, я предполагал, что HTML код формируется не в функции, а в поле Info, как шаблон. А значения ИМЯ, СУММА и ДАТА можно передать как аргументы в этот код HTML (в шаблон). Не обладая глубокими познаниями в программировании, я могу ошибаться.
Если это невозможно, то как можно решить эту задачу? Прикладываю пример бд.

К сообщению приложен файл (bd2.rar - 34Kb) cкачать
2 май 19, 21:42    [21877101]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
DarkMan
Member

Откуда:
Сообщений: 514
wladimirrr
DarkMan, я предполагал, что HTML код формируется не в функции, а в поле Info, как шаблон. А значения ИМЯ, СУММА и ДАТА можно передать как аргументы в этот код HTML (в шаблон). Не обладая глубокими познаниями в программировании, я могу ошибаться.
Если это невозможно, то как можно решить эту задачу?

В Acces возможно Все , ну или почти все !
Посмотрел Вашу базу . Мое мнение .
1. Вы что ? На каждого пользователя в таблице инфо собираетесь хранить шаблон? 1 000 000 пользователей , и
1 000 000 шаблонов? Т.е дублирование данных ?
2. Как Вы собираетесь этот шаблон засунуть в VBA , в коде HTML есть открывающие и закрывающие теги , а также косая черта и так далее.
Если Вы в таком виде передадите его в VBA , то скорее всего Вы получите ошибку.
3. Вам нужно отредактировать шаблон , чтобы в письме было все красиво , для этого в HTML есть стили CSS .
В приведенном моем примере я Вам написал , что используется таблица , а в ней применены некоторые стили.
Посмотрите внимательно пример . Вы каждый раз в поле формы собираетесь редактировать шаблон????
4. Мое мнение . В Вашу фукцию в качестве аргументов из поля формы Вы передаете только необходимые
данные , ну или ID клиента ,
а в функции используя эти данные или ID Вы делаете запрос к базе данных и вытягиваете вси информацию по клиенту ,
как в моем примере по ID заказа я получаю информацию о заказе. И здесь же в функции я формирую текст
письма в формате HTML и вставляю туда необходимые данные .
5.Это мое мнение , может у кого то есть другое , пусть они Вам подскажут.
6.Удачи в нашем не леХком труде .
3 май 19, 08:10    [21877200]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 288
DarkMan
wladimirrr
DarkMan, я предполагал, что HTML код формируется не в функции, а в поле Info, как шаблон. А значения ИМЯ, СУММА и ДАТА можно передать как аргументы в этот код HTML (в шаблон). Не обладая глубокими познаниями в программировании, я могу ошибаться.
Если это невозможно, то как можно решить эту задачу?

В Acces возможно Все , ну или почти все !
Посмотрел Вашу базу . Мое мнение .
1. Вы что ? На каждого пользователя в таблице инфо собираетесь хранить шаблон? 1 000 000 пользователей , и
1 000 000 шаблонов? Т.е дублирование данных ?

Эта база условная для выработки решения. Реальная баз другая.
2. Как Вы собираетесь этот шаблон засунуть в VBA , в коде HTML есть открывающие и закрывающие теги , а также косая черта и так далее.

Я именно это и хочу узнать, можно так или нет. Если нельзя, то как лучше сделать.
Если Вы в таком виде передадите его в VBA , то скорее всего Вы получите ошибку.
3. Вам нужно отредактировать шаблон , чтобы в письме было все красиво , для этого в HTML есть стили CSS .
В приведенном моем примере я Вам написал , что используется таблица , а в ней применены некоторые стили.
Посмотрите внимательно пример . Вы каждый раз в поле формы собираетесь редактировать шаблон????

Нет, шаблон должен быть один и тот же. В него нужно подставлять данные из таблицы (формы).
4. Мое мнение . В Вашу фукцию в качестве аргументов из поля формы Вы передаете только необходимые
данные , ну или ID клиента ,
а в функции используя эти данные или ID Вы делаете запрос к базе данных и вытягиваете вси информацию по клиенту ,
как в моем примере по ID заказа я получаю информацию о заказе. И здесь же в функции я формирую текст
письма в формате HTML и вставляю туда необходимые данные .

Для меня это сложно, могли бы Вы сделать это на моем примере?
3 май 19, 21:57    [21877533]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
DarkMan
Member

Откуда:
Сообщений: 514
wladimirrr
Для меня это сложно, могли бы Вы сделать это на моем примере?

Я уже вроде как все подробно описал выше . Вам только стоит определиться что для Вас удобнее , или передавать все параметры в функцию , или передать только ID клиента , а запрос к базе данных и получение всех данных пользователя делать уже непосредственно в этой функции , или создать отдельную функцию , а в этой вызывать.
Сделать полностью на Вашем примере я не могу , так как уже почти 3 года не работаю в VBA и немного подзабыл синтаксис. Я Вам выкладывал пример в PHP , Вы можете на основе его подогнать под себя . Я могу примерно подредактировать Вашу функцию , но за синтаксис я ответственности не несу . Там будет только логика. :))
 Function SendEmail4(client_ID as integer)

 Dim db As Database
 Set db = CurrentDb()
 Dim Rs As DAO.Recordset
 Dim strSQL as string 
 Dim MsgHtml as string
 Dim Name as  string

 strSQL="Select * Ftom tablica Where ID=" & client_ID

 Set Rs = db.OpenRecordset(strSQL)

 Name=Rs("Поле таблицы имя") 'присваиваем значение переменной из поля таблицы

 MsgHtml ="Здесь Вы вставляете код HTML , и  вставляете данные из Recordset которые получите из таблицы "

Dim msg As Object
Dim config As String
Set msg = CreateObject("CDO.Message")
config = "http://schemas.microsoft.com/cdo/configuration/"
With msg
.To = Forms!Info!Email
.From = "******@mail.ru"
.Subject = Forms!Info!Tema
.HTMLBody = MsgHtml 
With .Configuration.Fields
.Item(config & "sendusing") = 2
.Item(config & "smtpserver") = "smtp.mail.ru"
.Item(config & "smtpauthenticate") = 1
.Item(config & "smtpserverport") = 465
.Item(config & "sendusername") = "******@mail.ru"
.Item(config & "sendpassword") = "******"
.Item(config & "smtpusessl") = True
.Item(config & "smtpconnectiontimeout") = 60
.Update
End With
.send
End With

Set Rs =  Nothing
Set msg = Nothing

End Function


Логика будет примерно такая . При нажатии кнопки в форме вызываете эту функцию в качестве параметра передаете в функцию ID клиента . В функции Вы делаете запрос к базе данных для получение данных из таблицы для этого клиента . Открываете RecordSet . Теперь в коде HTML Вы можете вставлять необходимые Вам данные из таблицы , такие поля как Имя,Фамилия сумма долга и т.д. Данные из RecordSet можно присваивать переменным,пример переменная Name, или вставлять переменную Rs("Поле таблицы") непосредственно в код HTML .
Ну и естесственно Вам нужно разобраться с синтаксисом . Здесь я не помощник . Пример из PHP я Вам привел Выше , в нем переменные со знаком $ . На основе того примера можете сделать свой . Если Вы один раз сделаете шаблон - функцию рабочего примера . То потом не будет никаких проблем . В функцию передаете ID клиента и отсылаете ему сообщение . Пробуйте дерзайте , с синтаксисом акцессники Вам помогут . Они добрые.
Удачи.
4 май 19, 12:36    [21877699]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
DarkMan
Member

Откуда:
Сообщений: 514
wladimirrr
Для меня это сложно, могли бы Вы сделать это на моем примере?

Ну вот вкратце накидал Вам пример в Вашей базе данных . E-mail на моем компе не отправляется т.к там нужно делать настройки , а мне конечно лень . Я как всегда набросал Вам логику . Надеюсь дальше разберетесь .
1.Поубирайте нафинг поля подстановок из таблиц и навсегда их забудьте.
2.Поубирайте нафинг из базы данных названия контролов и полей базы данных кирилицей и навсегда их забудьте.
P.S
Прикладываю пример Вашей базы , нажмите в форме на кнопку , и полычите MsgBox
Ну начало Вам есть . А далее уж сударь дерзайте сами.
Вот Ваш код
+

 Private Sub Command18_Click()
   Call SendEmail4(Me.IDinfo)
 End Sub

 Function SendEmail4(client_ID As Integer)

 Dim db As DAO.Database
 Set db = CurrentDb()
 Dim Rs As DAO.Recordset
 Dim strSQL As String
 Dim MsgHtml As String
 
 'strSQL = "Select * From Info Where IDinfo=" & client_ID
 strSQL = "SELECT Info.IDinfo, Info.IDcontact, Contact.Имя, Contact.Email, Info.Tema, Info.Info, Info.Сумма, Info.Дата " _
       & "FROM Contact INNER JOIN Info ON Contact.IDcontact = Info.IDcontact " _
       & "Where Info.IDinfo=" & client_ID

 Set Rs = db.OpenRecordset(strSQL)
 
 MsgHtml = "<p> Уважаемый <strong> " & Rs("Имя") & "</strong>!</p>"
 MsgHtml = MsgHtml & "У Вас есть задолженность перед банком в сумме - " & Rs("Сумма") & " рублей"
 
 MsgBox (MsgHtml)

Dim msg As Object
Dim config As String

Set msg = CreateObject("CDO.Message")
config = "http://schemas.microsoft.com/cdo/configuration/"

With msg
.To = Forms!Info!Email
.FROM = "******@mail.ru"
.Subject = Forms!Info!Tema
.HTMLBody = Forms!Info!Info
With .Configuration.Fields
.Item(config & "sendusing") = 2
.Item(config & "smtpserver") = "smtp.mail.ru"
.Item(config & "smtpauthenticate") = 1
.Item(config & "smtpserverport") = 465
.Item(config & "sendusername") = "******@mail.ru"
.Item(config & "sendpassword") = "******"
.Item(config & "smtpusessl") = True
.Item(config & "smtpconnectiontimeout") = 60
.Update
End With

.send
End With

Set Rs = Nothing
Set msg = Nothing
End Function



К сообщению приложен файл (bd2.7z - 39Kb) cкачать
4 май 19, 14:55    [21877732]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
DarkMan
Member

Откуда:
Сообщений: 514
wladimirrr, Немного подправил базу . Проверил , код рабочий . С моего компа сообщения отправляются . Добавил в Ваш модуль кодировку UTF-8 , так как в первом варианте вместо кирилицы отправлялись ???????? . Установите правильно настройки сервера и работайте. Вот скрин с моего компа .

К сообщению приложен файл. Размер - 12Kb
4 май 19, 16:10    [21877761]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
DarkMan
Member

Откуда:
Сообщений: 514
wladimirrr, А вот база

К сообщению приложен файл (bd2.7z - 37Kb) cкачать
4 май 19, 16:10    [21877762]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 288
DarkMan, огромное спасибо! Все работает хорошо. У меня даже без кодировки все отправлялось. Буду тестировать дальше. Еще раз Большое Спасибо!
4 май 19, 20:25    [21877842]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 288
DarkMan, а если в письмо надо вставить еще рисунок (логотип), как его присоединить?
4 май 19, 20:31    [21877846]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
DarkMan
Member

Откуда:
Сообщений: 514
wladimirrr
DarkMan, огромное спасибо! Все работает хорошо. У меня даже без кодировки все отправлялось. Буду тестировать дальше. Еще раз Большое Спасибо!
Это до поры до времени , кодировку лучше таки использовать.
wladimirrr
DarkMan, а если в письмо надо вставить еще рисунок (логотип), как его присоединить?

Я сечас не за компом . Попробуйте вставить в коде HTML <img src="здесь прописываете путь к файлу"/> .
4 май 19, 20:53    [21877853]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
DarkMan
Member

Откуда:
Сообщений: 514
wladimirrr
DarkMan, а если в письмо надо вставить еще рисунок (логотип), как его присоединить?

Вставить изображение в код HTML на скорую руку не получилось. Немного добавил кода в процедуру .
Файл можно приатачить. Вот код
+
Function SendEmail4(client_ID As Integer)

 Dim db As DAO.Database
 Set db = CurrentDb()
 Dim Rs As DAO.Recordset
 Dim strSQL As String
 Dim MsgHtml As String
 
 'strSQL = "Select * From Info Where IDinfo=" & client_ID
 strSQL = "SELECT Info.IDinfo, Info.IDcontact, Contact.Имя, Contact.Email, Info.Tema, Info.Info, Info.Сумма, Info.Дата " _
       & "FROM Contact INNER JOIN Info ON Contact.IDcontact = Info.IDcontact " _
       & "Where Info.IDinfo=" & client_ID

 Set Rs = db.OpenRecordset(strSQL)
 
 MsgHtml = "<p> Уважаемый <strong> " & Rs("Имя") & "</strong>!</p>"
 MsgHtml = MsgHtml & "У Вас есть задолженность перед банком в сумме - " & Rs("Сумма") & " рублей "
 MsgHtml = MsgHtml & "<p> Об оплате , просьба сoобщить на e-mail - " & Rs("Email") & " не позднее " & Rs("Дата") & "  </p>"

Dim msg As Object
Dim config As String

Set msg = CreateObject("CDO.Message")
config = "http://schemas.microsoft.com/cdo/configuration/"

With msg
.To = "********@mail.ru"
.FROM = "********@mail.ru"
.Subject = Rs("Tema")
.AddAttachment ("C:\Users\UserName\Documents\image\logo.png") 'Здесь прописываем путь к файлу
.HTMLBody = MsgHtml
.HTMLBodyPart.Charset = "utf-8"
.TextBodyPart.Charset = "utf-8"
.BodyPart.Charset = "utf-8"
   
With .Configuration.Fields
.Item(config & "sendusing") = 2
.Item(config & "smtpserver") = "smtp.mail.ru"
.Item(config & "smtpauthenticate") = 1
.Item(config & "smtpserverport") = 25
.Item(config & "sendusername") = "username"
.Item(config & "sendpassword") = "password"
.Item(config & "smtpusessl") = False
.Item(config & "smtpconnectiontimeout") = 60
.Update
End With
.send
End With

Set Rs = Nothing
Set msg = Nothing
End Function

Set Rs = Nothing
Set msg = Nothing
End Function
4 май 19, 23:45    [21877921]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
DarkMan
Member

Откуда:
Сообщений: 514
wladimirrr
DarkMan, а если в письмо надо вставить еще рисунок (логотип), как его присоединить?

В функции добавилось вот это . Это путь к папке Documents->image . Вместо UserName вставьте свое имя User . Надеюсь разберетесь.
 .AddAttachment ("C:\Users\UserName\Documents\image\logo.png") 'Здесь прописываем путь к файлу
4 май 19, 23:48    [21877927]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 288
DarkMan
wladimirrr
DarkMan, а если в письмо надо вставить еще рисунок (логотип), как его присоединить?

В функции добавилось вот это . Это путь к папке Documents->image . Вместо UserName вставьте свое имя User . Надеюсь разберетесь.
 .AddAttachment ("C:\Users\UserName\Documents\image\logo.png") 'Здесь прописываем путь к файлу

Это получается вложение к письму, а мне надо вставить рисунок в тело письма.
5 май 19, 00:30    [21877936]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
DarkMan
Member

Откуда:
Сообщений: 514
wladimirrr
Это получается вложение к письму, а мне надо вставить рисунок в тело письма.

wladimirrr,Иногда полезно и погуглить , а не только ждать готовых решений. :))
Ловите
+
Function SendEmail4(client_ID As Integer)

 Dim db As DAO.Database
 Set db = CurrentDb()
 Dim Rs As DAO.Recordset
 Dim strSQL As String
 Dim MsgHtml As String
 
 strSQL = "SELECT Info.IDinfo, Info.IDcontact, Contact.&#200;&#236;&#255;, Contact.Email, Info.Tema, Info.Info, Info.&#209;&#243;&#236;&#236;&#224;, Info.&#196;&#224;&#242;&#224; " _
       & "FROM Contact INNER JOIN Info ON Contact.IDcontact = Info.IDcontact " _
       & "Where Info.IDinfo=" & client_ID

 Set Rs = db.OpenRecordset(strSQL)
 
 MsgHtml = "<img src=""cid:logo.png""/><p> &#211;&#226;&#224;&#230;&#224;&#229;&#236;&#251;&#233; <strong> " & Rs("&#200;&#236;&#255;") & "</strong>!</p>"
 MsgHtml = MsgHtml & "&#211; &#194;&#224;&#241; &#229;&#241;&#242;&#252; &#231;&#224;&#228;&#238;&#235;&#230;&#229;&#237;&#237;&#238;&#241;&#242;&#252; &#239;&#229;&#240;&#229;&#228; &#225;&#224;&#237;&#234;&#238;&#236; &#226; &#241;&#243;&#236;&#236;&#229; - " & Rs("&#209;&#243;&#236;&#236;&#224;") & " &#240;&#243;&#225;&#235;&#229;&#233; "
 MsgHtml = MsgHtml & "<p> &#206;&#225; &#238;&#239;&#235;&#224;&#242;&#229; , &#239;&#240;&#238;&#241;&#252;&#225;&#224; &#241;o&#238;&#225;&#249;&#232;&#242;&#252; &#237;&#224; e-mail - " & Rs("Email") & " &#237;&#229; &#239;&#238;&#231;&#228;&#237;&#229;&#229; " & Rs("&#196;&#224;&#242;&#224;") & "  </p>"
 


Dim msg As Object
Dim config As String

Set msg = CreateObject("CDO.Message")
config = "http://schemas.microsoft.com/cdo/configuration/"

With msg
.To = "*****@list.ru"
.FROM = "*****@list.ru"
.Subject = Rs("Tema")

Set objbp = msg.AddRelatedBodyPart("C:/Users/Volodia/Documents/image/logo.png", "logo.png", 1)
objbp.Fields.Item("urn:schemas:mailheader:Content-ID") = "<logo.png>"
objbp.Fields.Update
 
.HTMLBody = MsgHtml
.HTMLBodyPart.Charset = "utf-8"
.TextBodyPart.Charset = "utf-8"
.BodyPart.Charset = "utf-8"
   
With .Configuration.Fields
.Item(config & "sendusing") = 2
.Item(config & "smtpserver") = "smtp.mail.ru"
.Item(config & "smtpauthenticate") = 1
.Item(config & "smtpserverport") = 25
.Item(config & "sendusername") = "username"
.Item(config & "sendpassword") = "password"
.Item(config & "smtpusessl") = False
.Item(config & "smtpconnectiontimeout") = 60
.Update
End With
.send
End With
5 май 19, 15:07    [21878112]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
DarkMan
Member

Откуда:
Сообщений: 514
wladimirrr, Блин. Немножко copy/paste подвело.
Ловите .
+

Function SendEmail4(client_ID As Integer)

 Dim db As DAO.Database
 Set db = CurrentDb()
 Dim Rs As DAO.Recordset
 Dim strSQL As String
 Dim MsgHtml As String
 
 strSQL = "SELECT Info.IDinfo, Info.IDcontact, Contact.Имя, Contact.Email, Info.Tema, Info.Info, Info.Сумма, Info.Дата " _
       & "FROM Contact INNER JOIN Info ON Contact.IDcontact = Info.IDcontact " _
       & "Where Info.IDinfo=" & client_ID

 Set Rs = db.OpenRecordset(strSQL)
 
 MsgHtml = "<img src=""cid:logo.png""/><p> Уважаемый <strong> " & Rs("Имя") & "</strong>!</p>"
 MsgHtml = MsgHtml & "У Вас есть задолженность перед банком в сумме - " & Rs("Сумма") & " рублей "
 MsgHtml = MsgHtml & "<p> Об оплате , просьба сoобщить на e-mail - " & Rs("Email") & " не позднее " & Rs("Дата") & "  </p>"
 


Dim msg As Object
Dim config As String

Set msg = CreateObject("CDO.Message")
config = "http://schemas.microsoft.com/cdo/configuration/"

With msg
.To = "*****@list.ru"
.FROM = "*****@list.ru"
.Subject = Rs("Tema")

Set objbp = msg.AddRelatedBodyPart("C:/Users/Volodia/Documents/image/logo.png", "logo.png", 1)
objbp.Fields.Item("urn:schemas:mailheader:Content-ID") = "<logo.png>"
objbp.Fields.Update
 
.HTMLBody = MsgHtml
.HTMLBodyPart.Charset = "utf-8"
.TextBodyPart.Charset = "utf-8"
.BodyPart.Charset = "utf-8"
   
With .Configuration.Fields
.Item(config & "sendusing") = 2
.Item(config & "smtpserver") = "smtp.mail.ru"
.Item(config & "smtpauthenticate") = 1
.Item(config & "smtpserverport") = 25
.Item(config & "sendusername") = "username"
.Item(config & "sendpassword") = "password"
.Item(config & "smtpusessl") = False
.Item(config & "smtpconnectiontimeout") = 60
.Update
End With
.send
End With

5 май 19, 15:11    [21878114]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 288
DarkMan, благодарю за помощь и терпение!)
Гуглю я постоянно, не всегда могу разобраться самостоятельно, не хватает базовых знаний.
Еще раз большое спасибо, буду встраивать в реальную базу.
5 май 19, 19:35    [21878218]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
DarkMan
Member

Откуда:
Сообщений: 514
wladimirrr
Еще раз большое спасибо, буду встраивать в реальную базу.

Пжлст . Приходите еще .
P.S Удачи в нашем нелеХком труде.
6 май 19, 07:43    [21878360]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
DarkMan
Member

Откуда:
Сообщений: 514
wladimirrr, Да, забыл . В своей функции добавьте эту строчку кода , я вчера в спешке упустил . И обязательно в VBA ,
в настройках установите галочку Обязательное обьявление переменных ( Require Variable Declaration ) .
Ну и помните про поля подстановок в таблицах и кирилицу в контролах. Удачи .
Dim objbp As Object
6 май 19, 08:32    [21878367]     Ответить | Цитировать Сообщить модератору
 Re: Вывод данных из аксесса в тело письма в формате HTML  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 288
DarkMan
wladimirrr
Еще раз большое спасибо, буду встраивать в реальную базу.

Пжлст . Приходите еще .
P.S Удачи в нашем нелеХком труде.

DarkMan, нужна Ваша помощь. Что-то у меня запрос не хочет открываться. "Where" не хочет понимать. Что я не так делаю?

К сообщению приложен файл. Размер - 41Kb
30 май 19, 21:14    [21898018]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить