04.10.2008, 07:00 | #1 |
Участник
|
Доброе время суток...
Подскажите как правильнее сделать отправку писем по электронной почте... Заранее благодарю
__________________
Рабочий день сокращает жизнь на 8 часов |
|
04.10.2008, 10:16 | #2 |
MCTS
|
Вам какой:
*через компоненту jmail (очень хорошие примеры приведены здесь Работа с почтой (аттачменты)). * CDO (в качестве примера можно посмотреть кодеюнит 5064 e-mail - logging, возможно он под другое ориентирован. Еще есть пример здесь - только про отправку http://forum.mazzy.ru/index.php?show...ndpost&p=18649). * еще граждане ругают кодеюнит 397. *В версии 5.0 можно применять кодеюнит 400 SMTP Mail. Для работы надо всего-то настроить smtp сервер и указать правила авторизации (Администрирование/ Управление ИТ/ Общая Настройка/ Настройка Эл. Почты (smtp)) Заполняем настройки - smtp сервер, так как нынче спамеров много, то еще указываем аутентификация = базовая, код пользователя и пароль (пароль кстати звездочками не шифруется, так, что использовать лучше специальный под такие дела ящик). Далее пишем такой код в нужном месте: Код:cumail.CreateMessage('Ivanov Ivan','ivanov@domen.ru','receiver@email.ru','Hello - тема','Body - тело письма',FALSE); cumail.Send; Уходит почти всегда. Почти - это если smtp сервер на mail.ru, и отправитель (ivanov@domen.ru) не совпадает с пользователем mail.ru через которого выполняется отправка. Цитата:Система передачи эл. почты по протоколу SMTP вернула следующую ошибку: (0x8004020E): Сервер отклонил адрес отправителя. Отклик сервера: 501 sender address must match authenticated user Т.е. варианта два: 1. взять другой smtp, для которого нет такой проверки. 2. подписываться правильным адресом. Если для рассылки завести отдельный ящик - то логично его и указывать. Зависит от того, что хочется получить на выходе. |
|
|
За это сообщение автора поблагодарили: mira (1). |
05.11.2008, 21:51 | #3 |
Участник
|
2 apanko спасибо за подсказку, ответ полней некуда...
Интересно как второй вариант с Vista живет... Надо протестировать...
__________________
Рабочий день сокращает жизнь на 8 часов |
|
23.10.2009, 17:27 | #4 |
Участник
|
Помогите с таким же вопросом, но для версии 2.0 и ниже. Сейчас реализована отправка почты посредством внешней смописанной программы на Дельфи, которая обращается к базе через ODBC драйвер и строит письмо из таблицы с текстом. Периодически по шедулеру это делается, но хочется иметь это в самом Navision и сразу по событию. А то так работает очень криво, иногда возникают ошибки программы.
|
|
26.10.2009, 12:22 | #5 |
Участник
|
Решился вопрос с помощью jMail и советов с форума. Теперь новая задача: сообщение может быть только 250 символов максимум... А надо больше, гораздо больше.
|
|
26.10.2009, 13:51 | #6 |
Administrator
|
сшивайте непосредственное при выводе
или заведите переменную в 1024, набейте в нее, выводите ее |
|
26.10.2009, 15:04 | #7 |
Участник
|
Во второй версии переменные могут быть размером максимум 250. Ну да ладно, видимо придется запихивать всю процедуру отсылки везде где можно. Хотел отдельным кодеюнитом написать, но очень как-то гиморно получается кусками текст процедуре отдавать.
|
|
26.10.2009, 16:29 | #8 |
Administrator
|
|
|
26.10.2009, 22:55 | #9 |
Administrator
|
пришла мысль.
если длинных текстовых переменных еще нет, то массив из коротких уже есть? это дополнительный геморрой, но должно сработать. даже если массива еще нет, то можно воспользоваться временной табличкой... там правда траблы могут быть с пробелами: если строка оканчивается на пробел, то пробел будет утерян посде вставки |
|
27.10.2009, 10:32 | #10 |
Участник
|
Цитата:
Сообщение от Sancho
пришла мысль.
если длинных текстовых переменных еще нет, то массив из коротких уже есть? это дополнительный геморрой, но должно сработать. даже если массива еще нет, то можно воспользоваться временной табличкой... там правда траблы могут быть с пробелами: если строка оканчивается на пробел, то пробел будет утерян посде вставки |
|
27.10.2009, 14:50 | #11 |
Участник
|
Вот .vbs файл, можно генерить из нава и отправлять
Код: Set objEmail = WScript.CreateObject("CDO.Message") 'Create CDO-object and get link on it into objEmail (var) '''''''''''''''''''''''''''''''''''''''''''''''''''' ' Required parameters of CDO-object '''''''''''''''''''''''''''''''''''''''''''''''''''' objEmail.From = "robot@Sercer.ru" 'Sender (mine) address objEmail.To = "DPugaev@Server.ru" 'Address of recipient or distribution list 'objEmail.BCC = "DPugaev@Server.ru" 'Hide copy recipient address objEmail.Subject = "Field Management Report " 'Subject of message objEmail.TextBody = "Body" 'Message Text objEmail.BodyPart.Charset = "windows-1251" 'Cyrillic encoding 'Sending message using SMTP-service (1 - using of local SMTP-service) objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'Name of SMTP-server objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.server.ru" objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 2 objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "" objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "" 'objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 'Port of SMTP-server objEmail.Configuration.Fields.Update 'Update configuration of CDO-object objEmail.Send 'Sending of message by using Send-method |
|
21.05.2010, 12:31 | #12 |
Участник
|
А правильно я понимаю, что штатный механизм отправки документов (например кредит-нот) на EMail, между 3 и 5 версиями Navision, не изменился!? Файл->Отправить->Отчет по-Email. Никаких новых средств не появилось!?
|
|
25.05.2010, 17:23 | #13 |
Участник
|
И еще вопрос. При формировании файла (Nav5 Outlook2003) HTML, с последующим присоединением к письму, в HTML явно ползут таблицы, т.е. отображается криво. Есть ли варианты решения?
|
|
25.05.2010, 19:37 | #14 |
Участник
|
Извените за вмешательство, но вопрос как мне кажется по теме.
Написан код: IF SalesPurch."E-Mail" <> '' THEN BEGIN CREATE(OutlookApp); OutlookItem := OutlookApp.CreateItem(0); OutlookItem."To"(SalesPurch."E-Mail"); text1 := Text000+' '+FORMAT("No.")+'"'+'!'; OutlookItem.Subject(text1); OutlookItem.Body(''); OutlookItem.Send; CLEAR(OutlookApp); END ELSE BEGIN MESSAGE(Text001, SalesPurch.Name); END; где OutlookApp - 'Microsoft Outlook 12.0 Object Library'.Application OutlookItem - 'Microsoft Outlook 12.0 Object Library'.MailItem Собственно вопрос: периодически у разных клиентов падает приложение при открытом Outlook. Причем Nav все делает (выполняет весь код, отправляет сообщение), а потом без выдачи какой-либо ошибки падает. Может кто сталкивался? |
|