Отсылка письма средствами nnCron

Обсуждение программ nnCron и nnCron LITE

Re: Отсылка письма средствами nnCron

Postby AlikasS » Sat, 21 Nov 2009, 16:41

Ilya wrote:В плагине smtp была ошибка!
Он загибался на файлах нулевой длинны.
Плагин обновил!

пора писать gui-плагин ;-)
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Отсылка письма средствами nnCron

Postby Ilya » Sat, 21 Nov 2009, 18:05

AlikasS wrote:
Ilya wrote:В плагине smtp была ошибка!
Он загибался на файлах нулевой длинны.
Плагин обновил!

пора писать gui-плагин ;-)

Ты в смысле что пора опубликовать сборником в Плагинах?
Исходники выложить проблем нет, а вот составить самплес и простенькое описалово!?
Ilya
 
Posts: 443
Joined: Mon, 07 Aug 2006, 09:51
Location: Санкт-Петербург

Re: Отсылка письма средствами nnCron

Postby progmo » Sun, 22 Nov 2009, 00:41

А можно реализовать дополнительно следующее?

Плагин работает на ура. Но мне нужно прикреплять файлы размером 10-11 метров, и все это отправлять по gprs каналу. Понятно что такая связь очень ненадежная. Поэтому хотелось бы:
1. Отправлять письмо только при наличии связи (пинги). Как это прикрутить в принципе понятно. Но вот как сделать, чтоб если нет связи, повторить отправку через час и таких попытки сделать 3.
2. Если связь есть, но письмо не ушло, также повторить отправку через час и таких попытки сделать 3.
progmo
 
Posts: 87
Joined: Mon, 02 Mar 2009, 17:07

Re: Отсылка письма средствами nnCron

Postby Wyz » Sun, 22 Nov 2009, 03:20

Можно счетчик и тупо паузу на час в цикле. Еще можно писать в переменную время (смотри в помощи "Работа с датами и временем") и в периодически запускаемой задаче проверять его и счетчик.

А не лучше как-нить через FTP? Будет докачка и кодирование не будет раздувать файлы на треть.
Wyz
 
Posts: 389
Joined: Tue, 11 Dec 2007, 01:42

Re: Отсылка письма средствами nnCron

Postby AlikasS » Sun, 29 Nov 2009, 04:07

Илья
при SMTPLOGON
в сохраненном файле нужен еще один перевод строки,
в месте
Date: Fri, 27 Nov 2009 14:49:35 +0400
--bounds1


т.е. так
Date: Fri, 27 Nov 2009 14:49:35 +0400

--bounds1

а то не видно в лог-файле, вложенных в письмо файлов,
при открытие в программе (пробовал на TheBat)


и еще в лог-файле в строке
Date: Fri, 27 Nov 2009 14:49:35 +0400

+0400 можно же вычислять самим,
а не использовать постоянное число.
у тебя в плагинах есть Время по UTC
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Отсылка письма средствами nnCron

Postby progmo » Tue, 23 Mar 2010, 23:16

Часто задача "виснет". В логе такие записи:
22:14:11 3388 arch_nncron_log: Action: stack error.
Или
12:27:39 3352 arch_nncron_log: Internal error. An established connection was aborted by the software in your host machine.

В чем может быть трабл?!

Сама задача
Code: Select all
#( arch_nncron_log
NoLog
Time: 13 10-22/4 * * * *
Action:
ShowMinimized   NormalPriority
START-APPW: C:\progra~1\nncron\Rar.exe a -r -m5 nncron_%NumATM%_%YYYY%%MM%%DD%.rar C:\progra~1\nncron\log
    S" АРХИВ nncron_%NumATM%_%YYYY%%MM%%DD%.rar СОЗДАН" EVAL-SUBST CRON-LOG
    SECLOGINON
    SECPASSON
    Low-priority  \ низкий приоритет
    S" nncron_%NumATM%_%YYYY%%MM%%DD%.rar" EVAL-SUBST ADD-ATTACH
    S" Архив отослан" \ текст
    S" the logs from nncron_%NumATM%" EVAL-SUBST \ тема
    S" xxx@yandex.ru" \ mail кому
    S" xxx@yandex.ru" \ mail от кого
    S" xxxx==" \ шифрованный логин
    S" xxxx==" \ шифрованный пароль
    S" smtp.yandex.ru" 25 \ адрес smtp сервера и порт
    SMTP-SEND&ATTACH ?DUP
    IF TMSG: "ошибка отправки: %0 esPICK%" 2
    ELSE TMSG: "АРХИВ ОТОСЛАН. ОК" 2
    THEN
)#
progmo
 
Posts: 87
Joined: Mon, 02 Mar 2009, 17:07

Re: Отсылка письма средствами nnCron

Postby elos » Tue, 23 Mar 2010, 23:47

Что-то поиском не могу найти...

%NumATM% - это что за переменная? Если это локальная переменная окружения, то где она задана в табах? Если это системная переменная окружения, то что-то не уверен, что её так просто можно вызвать в задачу крона.
elos
 
Posts: 664
Joined: Tue, 25 Apr 2006, 11:15

Re: Отсылка письма средствами nnCron

Postby progmo » Wed, 24 Mar 2010, 09:29

elos wrote:Что-то поиском не могу найти...

%NumATM% - это что за переменная? Если это локальная переменная окружения, то где она задана в табах? Если это системная переменная окружения, то что-то не уверен, что её так просто можно вызвать в задачу крона.


Code: Select all
<%
1000 VALUE NumATM
%>


Так в начале таба она определена
progmo
 
Posts: 87
Joined: Mon, 02 Mar 2009, 17:07

Re: Отсылка письма средствами nnCron

Postby progmo » Thu, 25 Mar 2010, 21:47

Никто не знает почему в принципе рабочая задача иногда завершается ошибкой (пример в постах выше) и далее перестает запускаться ?!
progmo
 
Posts: 87
Joined: Mon, 02 Mar 2009, 17:07

Re: Отсылка письма средствами nnCron

Postby VoidVolker » Thu, 25 Mar 2010, 23:19

progmo wrote:Часто задача "виснет". В логе такие записи:
22:14:11 3388 arch_nncron_log: Action: stack error.

stack error = ошибка стека. Скорее всего мусор на стеке остается.
progmo wrote:12:27:39 3352 arch_nncron_log: Internal error. An established connection was aborted by the software in your host machine.

Скорее всего обрыв связи.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Отсылка письма средствами nnCron

Postby progmo » Fri, 26 Mar 2010, 00:38

VoidVolker wrote:stack error = ошибка стека. Скорее всего мусор на стеке остается.


Не силен в таких тонкостях :( А с чем может быть связано появление мусора в стеке?
VoidVolker wrote:Скорее всего обрыв связи.


Обрыв связи разумеется возможен, канал ведь gprs. Это значит, что при потери связи, задача почему то не завершает свою работу, и поэтому уже не запускается повторно в заданное время?

Но ведь по логике, если задача выполняет некое действие каждые 2 часа. И при очередном запуске это "действие" выполнилось некорректно, то задача должна завершить все таки свою работу. И снова запуститься через 2 часа.
progmo
 
Posts: 87
Joined: Mon, 02 Mar 2009, 17:07

Re: Отсылка письма средствами nnCron

Postby AlikasS » Fri, 26 Mar 2010, 04:57

для попробовать
Code: Select all
#( re-task2
 : launch-arch_nncron_log    S" arch_nncron_log" SFIND IF EXECUTE RUN ELSE 2DROP THEN ;
WINAPI: OpenThread KERNEL32.DLL
VARIABLE t1-id
0 VALUE кол-во_попыток
WatchDisconnect
Action:
\ останавливаем задачу по отправке
 t1-id @ ?DUP
 IF
   0 1 OpenThread ?DUP
   IF
   STOP
   THEN
 THEN

\ дозвниваемся заново
BEGIN
кол-во_попыток  3 > IF MSG: "было больше 3 попыток" EXIT THEN
DIAL: "GPRS Connection" 5 30 \ !!!!!!!!!!!!!!!!!!!!! свое название!!!!!!!!!!!
PAUSE: 5000
кол-во_попыток 1 + TO кол-во_попыток
ONLINE? UNTIL
\ запустить задачу по отправке
launch-arch_nncron_log
)#

#( arch_nncron_log
Time: 13 10-22/4 * * * *
Action:
 GetCurrentThreadId t1-id !
re-task2 @ CF-ACTIVE SET-CRON-FLAG

ShowMinimized   NormalPriority
 START-APPW: C:\progra~1\nncron\Rar.exe a -r -m5 nncron_%NumATM%_%YYYY%%MM%%DD%.rar C:\progra~1\nncron\log
    S" АРХИВ nncron_%NumATM%_%YYYY%%MM%%DD%.rar СОЗДАН" EVAL-SUBST CRON-LOG
    SECLOGINON
    SECPASSON
    Low-priority  \ низкий приоритет
    S" nncron_%NumATM%_%YYYY%%MM%%DD%.rar" EVAL-SUBST ADD-ATTACH
    S" Архив отослан" \ текст
    S" the logs from nncron_%NumATM%" EVAL-SUBST \ тема
    S" xxx@yandex.ru" \ mail кому
    S" xxx@yandex.ru" \ mail от кого
    S" xxxx==" \ шифрованный логин
    S" xxxx==" \ шифрованный пароль
    S" smtp.yandex.ru" 25 \ адрес smtp сервера и порт
    SMTP-SEND&ATTACH ?DUP
    IF TMSG: "ошибка отправки: %0 esPICK%" 2
    ELSE TMSG: "АРХИВ ОТОСЛАН. ОК" 2
    THEN

0 TO кол-во_попыток
re-task2 @ CF-ACTIVE CLR-CRON-FLAG
)#
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Отсылка письма средствами nnCron

Postby Aveiro » Sun, 12 Dec 2010, 00:16

У меня письма отсылаются очень хорошо,а вот прикрепления (Log) не доходят... :?
Может потому,что малого размера ? (1,22 КБ ) или чуть больше.
Last edited by Aveiro on Sun, 12 Dec 2010, 00:54, edited 1 time in total.
nncron.exe v 1.93b15 Build 1177 08.02.2016
tm.exe v 1.93b15 Build 604 08.02.2016
Aveiro
 
Posts: 222
Joined: Tue, 06 Jul 2010, 21:19

Re: Отсылка письма средствами nnCron

Postby Aveiro » Sun, 12 Dec 2010, 00:54

Вроде заработало....извините. Не добавил EVAL-SUBST в строке.... :rolleyes:
nncron.exe v 1.93b15 Build 1177 08.02.2016
tm.exe v 1.93b15 Build 604 08.02.2016
Aveiro
 
Posts: 222
Joined: Tue, 06 Jul 2010, 21:19

Re: Отсылка письма средствами nnCron

Postby registration » Mon, 24 Jan 2011, 15:03

нет вложенного файла в сообщении посланном плагином smtp_nncron.f v 0.3 (адаптация под nnCron)

Скопировал исходный код плагина из сообщения
Ilya Posted: Sun, 15 Feb 2009, 21:31

(http://www.nncron.ru/forums/viewtopic.php?f=23&t=9480)
в файл smtp_nncron.f (кодировка файла Win 1251). Файл сохранил в папку C:\Program Files\nnCron\plugins\other\smtp_nncron.f добавил в список плагинов nnCron (слово ADD-ATTACH появилось в списке всех слов nnCron).
Cоздал тестовое задание:
Code: Select all
#( send_test
NoActive
AsLoggedUser
Action:
   \ 1.пример без шифрованного логина и пароля
    Low-priority \ низкий приоритет
    Confirm-Reading \ подтверждение прочтения
    Confirm-Sending \ подтверждение доставки
    S" D:\test\testfile.dbf" ADD-ATTACH \ прикрепить файл
    S" text_of_letter" \ текст
    S" subject_of_letter" \ тема
    S" postmaster@mydomain.ru" \ mail кому
\    S" boss-pupkina@mailo.com zam-pupkina@mailo.com 2boss-pupkina@mailo.com-pupkina@mailo.com" \ Можно указать несколько адресатов через пробел !
    S" postmaster@mydomain.ru" \ mail от кого
    S" postmaster" \ логин
    S" mypassword" \ пароль
    S" localhost" 25 \ адрес smtp сервера и порт smtp сервера
    SMTP-SEND&ATTACH ?DUP IF MSG: "ошибка отправки: %0 esPICK%" ELSE MSG: "ОК" THEN
)#

После выполнения во входящей папке почтового клиента получил сообщение с текстом в теле письма:
Code: Select all
text_of_letter
--bounds1
Content-Type: plain/text;
 name=estfile.dbf"
Content-transfer-encoding: base64
Content-Disposition: attachment;
 filename=estfile.dbf"

A28BDQAAAABhAvkBAAAAAAAAAAAAAAAAAAAAAAAAAABGREFUAAAAAAAAAEQAAAAACAAAAAAAAAAA
AAAAAAAAAE5NSwAAAAAAAAAAQwAAAAAmAAAAAAAAAAAAAAAAAAAATkxTAAAAAAAAAABDAAAAAA4A
AAAAAAAAAAAAAAAAAABOTVMAAAAAAAAAAEMAAAAARgAAAAAAAAAAAAAAAAAAAE9TVEYAAAAAAAAA
TgAAAAAQAAAAAAAAAAAAAAAAAAAAUwAAAAAAAAAAAABOAAAAABAAAAAAAAAAAAAAAAAAAABORAAA
AAAAAAAAAEMAAAAACgAAAAAAAAAAAAAAAAAAAERLAAAAAAAAAAAATgAAAAABAAAAAAAAAAAAAAAA
AAAAUkVGAAAAAAAAAABOAAAAAAoAAAAAAAAAAAAAAAAAAABUVAAAAAAAAAAAAEMAAAAAAwAAAAAA
AAAAAAAAAAAAAE5BWk4AAAAAAAAAQwAAAACgAAAAAAAAAAAAAAAAAAAAREFQUAAAAAAAAABEAAAA
AAgAAAAAAAAAAAAAAAAAAABEQVRQAAAAAAAAAEQAAAAACAAAAAAAAAAAAAAAAAAAAE5MU0sAAAAA
AAAAQwAAAAAOAAAAAAAAAAAAAAAAAAAATUZPAAAAAAAAAABDAAAAAAYAAAAAAAAAAAAAAAAAAABO
QgAAAAAAAAAAAEMAAAAAJgAAAAAAAAAAAAAAAAAAAE5BTUsAAAAAAAAAQwAAAABGAAAAAAAAAAAA
AAAAAAAAT0tQTwAAAAAAAABDAAAAAA4AAAAAAAAAAAAAAAAAAAAN
--bounds1--

в теле письма есть строка filename=estfile.dbf вместо testfile.dbf
Вложенный файл testfile.dbf отсутствует.

Замена строки S" localhost" 25 \ адрес smtp сервера и порт smtp сервера
на строку типа: S" ComputerName" 25 \ Вместо ComputerName реальное имя машины,
S" ComputerName.FullDomainName" 25 \ Вместо ComputerName.FullDomainName реальное имя машины
S" 10.10.10.10" 25\
S" 127.0.0.1" 25 \
не помогает.

лог почтового сервера после отправки при помощи задания nnCron:
Code: Select all
24.01.2011 12:40:04 SMTPSERV      SMTP сервер запущен (порт 25)
 24.01.2011 12:40:04 POP3SERV      POP3 сервер запущен (порт 110)
+24.01.2011 12:40:44 SMTPSERV 0001 Подключение SMTP клиента [10.10.10.10]
<24.01.2011 12:40:44 SMTPSERV 0001 220 mydomain.ru Courier ESMTP server ready
>24.01.2011 12:40:44 SMTPSERV 0001 EHLO localhost
<24.01.2011 12:40:44 SMTPSERV 0001 250-mydomain.ru greets localhost
<24.01.2011 12:40:44 SMTPSERV 0001 250-AUTH PLAIN LOGIN
<24.01.2011 12:40:44 SMTPSERV 0001 250 8BITMIME
>24.01.2011 12:40:44 SMTPSERV 0001 AUTH LOGIN
<24.01.2011 12:40:44 SMTPSERV 0001 334 VXNlcm5hbWU6
>24.01.2011 12:40:44 SMTPSERV 0001 cG9zdG1hc3Rlcg==
<24.01.2011 12:40:44 SMTPSERV 0001 334 UGFzc3dvcmQ6
>24.01.2011 12:40:44 SMTPSERV 0001 bXlwYXNzd29yZA==
<24.01.2011 12:40:44 SMTPSERV 0001 235 Authentication successful
>24.01.2011 12:40:44 SMTPSERV 0001 MAIL FROM: <postmaster@mydomain.ru>
<24.01.2011 12:40:44 SMTPSERV 0001 250 OK - mail from <postmaster@mydomain.ru>
>24.01.2011 12:40:44 SMTPSERV 0001 RCPT TO: <postmaster@mydomain.ru>
<24.01.2011 12:40:44 SMTPSERV 0001 250 OK - Recipient <postmaster@mydomain.ru>
>24.01.2011 12:40:44 SMTPSERV 0001 RSET
<24.01.2011 12:40:44 SMTPSERV 0001 250 OK - Reset

а далее отличие от отправки при помощи Outlook Express (строки с ошибками)
Code: Select all
>24.01.2011 12:40:44 SMTPSERV 0001
<24.01.2011 12:40:44 SMTPSERV 0001 500 Command not recognized
>24.01.2011 12:40:44 SMTPSERV 0001 RSET
<24.01.2011 12:40:44 SMTPSERV 0001 250 OK - Reset
>24.01.2011 12:40:44 SMTPSERV 0001 MAIL FROM: <postmaster@mydomain.ru>
<24.01.2011 12:40:44 SMTPSERV 0001 250 OK - mail from <postmaster@mydomain.ru>
>24.01.2011 12:40:44 SMTPSERV 0001 RCPT TO: <postmaster@mydomain.ru>
<24.01.2011 12:40:44 SMTPSERV 0001 250 OK - Recipient <postmaster@mydomain.ru>
>24.01.2011 12:40:44 SMTPSERV 0001 DATA
<24.01.2011 12:40:44 SMTPSERV 0001 354 Send data. End with CRLF.CRLF
<24.01.2011 12:40:44 SMTPSERV 0001 250 OK
>24.01.2011 12:40:44 SMTPSERV 0001 QUIT
<24.01.2011 12:40:44 SMTPSERV 0001 221 Service closing transmission channel
-24.01.2011 12:40:44 SMTPSERV 0001 Отключение SMTP клиента [10.10.1.10]
@24.01.2011 12:40:44 ROUTER        Сообщение от postmaster@mydomain.ru помещено в п/я postmaster

лог почтового сервера после отправки при помощи Outlook Express (все в норме, сообщение с вложением приходит):
Code: Select all
 24.01.2011 11:42:06 SMTPSERV      SMTP сервер запущен (порт 25)
 24.01.2011 11:42:06 POP3SERV      POP3 сервер запущен (порт 110)
+24.01.2011 11:42:12 POP3SERV 0001 Подключение POP3 клиента [10.10.10.10]
<24.01.2011 11:42:12 POP3SERV 0001 +OK Courier POP3 server ready <3700.73416142132057@mydomain.ru>
>24.01.2011 11:42:12 POP3SERV 0001 USER postmaster
<24.01.2011 11:42:12 POP3SERV 0001 +OK name accepted
>24.01.2011 11:42:12 POP3SERV 0001 PASS ********
<24.01.2011 11:42:12 POP3SERV 0001 +OK postmaster's maildrop has 0 messages (0 octets)
>24.01.2011 11:42:12 POP3SERV 0001 STAT
<24.01.2011 11:42:12 POP3SERV 0001 +OK 0 0
>24.01.2011 11:42:12 POP3SERV 0001 QUIT
<24.01.2011 11:42:12 POP3SERV 0001 +OK Courier POP3 server signing off (0 messages left)
-24.01.2011 11:42:12 POP3SERV 0001 Отключение POP3 клиента [10.10.10.10]
+24.01.2011 11:43:52 SMTPSERV 0002 Подключение SMTP клиента [10.10.10.10]
<24.01.2011 11:43:52 SMTPSERV 0002 220 mydomain.ru Courier ESMTP server ready
>24.01.2011 11:43:52 SMTPSERV 0002 EHLO ComputerName
<24.01.2011 11:43:52 SMTPSERV 0002 250-mydomain.ru greets ComputerName
<24.01.2011 11:43:52 SMTPSERV 0002 250-AUTH PLAIN LOGIN
<24.01.2011 11:43:52 SMTPSERV 0002 250 8BITMIME
>24.01.2011 11:43:52 SMTPSERV 0002 AUTH LOGIN
<24.01.2011 11:43:52 SMTPSERV 0002 334 VXNlcm5hbWU6
>24.01.2011 11:43:52 SMTPSERV 0002 cG9zdG1hc3Rlcg==
<24.01.2011 11:43:52 SMTPSERV 0002 334 UGFzc3dvcmQ6
>24.01.2011 11:43:52 SMTPSERV 0002 bXlwYXNzd29yZA==
<24.01.2011 11:43:52 SMTPSERV 0002 235 Authentication successful
>24.01.2011 11:43:52 SMTPSERV 0002 MAIL FROM: <postmaster@mydomain.ru>
<24.01.2011 11:43:52 SMTPSERV 0002 250 OK - mail from <postmaster@mydomain.ru>
>24.01.2011 11:43:52 SMTPSERV 0002 RCPT TO: <postmaster@mydomain.ru>
<24.01.2011 11:43:52 SMTPSERV 0002 250 OK - Recipient <postmaster@mydomain.ru>
>24.01.2011 11:43:52 SMTPSERV 0002 RSET
<24.01.2011 11:43:52 SMTPSERV 0002 250 OK - Reset

а далее отличие от задания nnCron:
Code: Select all
>24.01.2011 11:43:52 SMTPSERV 0002 RSET
<24.01.2011 11:43:52 SMTPSERV 0002 250 OK - Reset
>24.01.2011 11:43:52 SMTPSERV 0002 MAIL FROM: <postmaster@mydomain.ru>
<24.01.2011 11:43:52 SMTPSERV 0002 250 OK - mail from <postmaster@mydomain.ru>
>24.01.2011 11:43:52 SMTPSERV 0002 RCPT TO: <postmaster@mydomain.ru>
<24.01.2011 11:43:52 SMTPSERV 0002 250 OK - Recipient <postmaster@mydomain.ru>
>24.01.2011 11:43:52 SMTPSERV 0002 DATA
<24.01.2011 11:43:52 SMTPSERV 0002 354 Send data. End with CRLF.CRLF
<24.01.2011 11:43:52 SMTPSERV 0002 250 OK
>24.01.2011 11:43:53 SMTPSERV 0002 QUIT
<24.01.2011 11:43:53 SMTPSERV 0002 221 Service closing transmission channel
-24.01.2011 11:43:53 SMTPSERV 0002 Отключение SMTP клиента [10.10.10.10]
@24.01.2011 11:43:56 ROUTER        Сообщение от postmaster@mydomain.ru помещено в п/я postmaster

При создании тестового сообщения про помощи Outlook Express всё в норме, сообщение отправляется, попадает на сервер и приходит во "Входящие" почтового клиента.

Конфигурация тестовой системы:

ОС: WinXP Prof SP3
nnCron v1.91 Build 1083
Почтовый клиент: Outlook Express 6.0
Почтовый сервер: Courier Mail Server v 1.55

Почтовый клиент и Почтовый сервер для теста физически размещены на одной машине.

Что у меня не так с плагином или заданием, и как это исправить?
registration
 
Posts: 26
Joined: Mon, 24 Jan 2011, 14:25

PreviousNext

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Google [Bot] and 1 guest