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

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

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

Postby AlikasS » Tue, 28 Aug 2012, 15:33

VoidVolker wrote:....

не понял копирования кода, или чего пропустил...
исправь исходный код или покажи как
User avatar
AlikasS
 
Posts: 1437
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

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

Postby VoidVolker » Tue, 28 Aug 2012, 18:22

AlikasS wrote:не понял копирования кода, или чего пропустил...

Комментарий под кодом.
Code: Select all
: CUR-DAY/TIME>S1 ( -- a u)
GET-CUR-TIME
Day@ Mon@ Year@ Hour@ Min@ Sec@
<# \ Буфер заполняется с конца
0 HOLD  \ Пишет ноль в конец строки, т.е. если надо убрать два последних символа - надо убрать эти две строки
S"  " HOLDS \ Пишет пробел
MYTIMELINE HOLDS \ Пишет строку
BL HOLD  \ Пробел
S>D # # 2DROP
S" :" HOLDS
S>D # # 2DROP
S" :" HOLDS
S>D # # 2DROP
BL HOLD
S>D # # # # 2DROP
BL HOLD
1- 3 * MONNAMES 1+  + 3 HOLDS
BL HOLD
S>D # #
BL HOLD
[CHAR] , HOLD
WDay@ 1- 3 * WDAYS 1+  + 3 HOLDS
S" Date: " HOLDS
#>
2- \ вот не понятный момент,
\ в строку добавлялось еще два нуля,
\ пришлось ее посто обрезать на два символа
;
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

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

Postby Morituruz » Mon, 03 Sep 2012, 19:59

Господа, так чем ваше обсуждение окончилось?
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

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

Postby alx » Mon, 22 Jul 2013, 19:30

Доброго времени суток!

Спасибо огромное за плагин!
Прошу прощения за глупый вопрос, но что-то своими силами никак не могу разобраться: как подружить этот плагин с задачей birthdays?

Нужно организовать рассылку с напоминанием о днях рождения. Вопрос: как передать в тело письма значения переменных bname, bdays, byears (аналогично тому, как в MSG)?

Code: Select all
#( birthdays
OnceADay
<(
: birthdays.txt S" birthdays.txt" ;
VARIABLE fb
CREATE bline 256 ALLOT
CREATE bname 64 ALLOT
VARIABLE bdate
VARIABLE byears
VARIABLE bdays
\ start reminding <pre-period> days before the birthday
5 CONSTANT pre-period
)>
Action:
  birthdays.txt R/O OPEN-FILE-SHARED IF DROP ERR-MSG: "Can't open %birthdays.txt% file" EXIT THEN fb !
  BEGIN bline 250 fb @ READ-LINE THROW WHILE
    bline SWAP
    <TIB
       get-number Year@ get-number get-number YMD>DATE bdate !
       Year@ SWAP - byears !
       1 WORD COUNT 63 MIN bname PLACE
       CUR-DATE bdate @ DATE- NEGATE DUP 0 > OVER pre-period < AND
       IF bdays !
          MSG: "Birthday reminder!!!%crlf%%bname COUNT%%crlf%Remining days: %bdays @%.%crlf%Aged: %byears @%.%crlf%Don't forget to send greeting card!"
    Low-priority
    SMTPLOGON
    S" body" \ хотелось бы, чтоб здесь было сообщение, как в MSG
    S" test"
    S" xxx@yyy.com"
    S" zzz@yyy.com"
    S" xxx"
    S" pass"
    S" smtp.yyy.com" 25
    SMTP-SEND&ATTACH ?DUP IF MSG: "ошибка отправки %0 esPICK%" ELSE MSG: "ОК" THEN
       ELSE DROP THEN
    TIB>
  REPEAT
  DROP
  fb @ CLOSE-FILE DROP
)#


Заранее спасибо!
alx
 
Posts: 5
Joined: Mon, 22 Jul 2013, 10:16

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

Postby Morituruz » Tue, 23 Jul 2013, 08:31

Наверное вы хотите так:
Code: Select all
#( birthdays
OnceADay
<(
: birthdays.txt S" birthdays.txt" ;
VARIABLE fb
CREATE bline 256 ALLOT
CREATE bname 64 ALLOT
VARIABLE bdate
VARIABLE byears
VARIABLE bdays
\ start reminding <pre-period> days before the birthday
5 CONSTANT pre-period
)>
Action:
  birthdays.txt R/O OPEN-FILE-SHARED IF DROP ERR-MSG: "Can't open %birthdays.txt% file" EXIT THEN fb !
  BEGIN bline 250 fb @ READ-LINE THROW WHILE
    bline SWAP
    <TIB
       get-number Year@ get-number get-number YMD>DATE bdate !
       Year@ SWAP - byears !
       1 WORD COUNT 63 MIN bname PLACE
       CUR-DATE bdate @ DATE- NEGATE DUP 0 > OVER pre-period < AND
       IF bdays !
          TMSG: "Birthday reminder!!!%crlf%%bname COUNT%%crlf%Remining days: %bdays @%.%crlf%Aged: %byears @%.%crlf%Don't forget to send greeting card!" 5
    Low-priority
    SMTPLOGON
    S" Birthday reminder!!!%crlf%%bname COUNT%%crlf%Remining days: %bdays @%.%crlf%Aged: %byears @%.%crlf%Don't forget to send greeting card!" EVAL-SUBST
    S" test"
    S" xxx@yyy.com"
    S" zzz@yyy.com"
    S" xxx"
    S" pass"
    S" smtp.yyy.com" 25
    SMTP-SEND&ATTACH ?DUP IF MSG: "ошибка отправки %0 esPICK%" ELSE MSG: "ОК" THEN
       ELSE DROP THEN
    TIB>
  REPEAT
  DROP
  fb @ CLOSE-FILE DROP
)#
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

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

Postby alx » Tue, 23 Jul 2013, 21:52

Да, спасибо огромное!
alx
 
Posts: 5
Joined: Mon, 22 Jul 2013, 10:16

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

Postby Burunduk » Tue, 26 Nov 2013, 11:52

Здравствуйте!

Взял плагин отсюда:

"Отправка почты (e-mail) средствами nnCron"
http://www.nncron.ru/forums/viewtopic.php?f=23&t=9480#p20607

Это самый последний вариант?

Тестирую пример на простом SMTP-сервере(без авторизации)

Code: Select all
#( тест_отсылки
\ NoActive
RunOnce
NoDel
Action:
   \ 1.пример без шифрованного логина и пароля
    Low-priority \ низкий приоритет
\    Confirm-Reading \ подтверждение прочтения
\    Confirm-Sending \ подтверждение доставки
    SMTPLOGON
\    S" " ADD-ATTACH \ прикрепить файл
   
    S" c:\Program Files\nncron\plugins\other\smtp_nncron.spf" ADD-ATTACH \ прикрепить файл   
    S" текст письма letter text" \ текст
    S" тема письма letter subject" \ тема
    S" spd38@mail.ru" \ mail кому
    S" spd@iszf.irk.ru" \ mail от кого
 
    S" spd" \ логин
   
    S" " \ пароль
 
    S" mail.iszf.irk.ru" 25 \ адрес smtp сервера и порт

   SMTP-SEND&ATTACH

   ?DUP IF MSG: "ошибка отправки: %0 esPICK%" ELSE MSG: "ОК" THEN

)#


Письмо приходит. Файл есть. Только в теме письма русская часть текста квадратиками. В файле же нормальные русские комментарии.

И что такое SMTPLOGON ? Это вроде включается протоколирование работы, но в Крон-логе ничего нет.
Burunduk
 
Posts: 73
Joined: Thu, 03 Oct 2013, 06:57

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

Postby SeMa » Tue, 26 Nov 2013, 13:57

Только в теме письма русская часть текста квадратиками.
Видно, русская кодировка не соответствует. Попробуй KOI-8, ANSI.

И что такое SMTPLOGON ? Это вроде включается протоколирование работы, но в Крон-логе ничего нет.
В папке крона должен появиться файл с именем в формате слова CUR-DAY/TIME>S.
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

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

Postby Burunduk » Tue, 26 Nov 2013, 14:20

SeMa wrote:Попробуй KOI-8, ANSI.


Т.е. задать кодировку при отправке письма?
Только как это делать? Слово какое-то магическое есть?
Burunduk
 
Posts: 73
Joined: Thu, 03 Oct 2013, 06:57

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

Postby SeMa » Tue, 26 Nov 2013, 20:01

Я с этим плагином не знаком.
Попробуй в каком-нибудь редакторе переконвертировать текст темы в другую кодировку, а затем вставить его в код.
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

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

Postby AlikasS » Wed, 27 Nov 2013, 01:41

http://nncron.ru/forums/viewtopic.php?f=5&t=75&start=180#p30968
вот это последняя версия, но там какие то баги то же были.
User avatar
AlikasS
 
Posts: 1437
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

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

Postby Burunduk » Wed, 27 Nov 2013, 04:39

AlikasS wrote:http://nncron.ru/forums/viewtopic.php?f=5&t=75&start=180#p30968
вот это последняя версия, но там какие то баги то же были.


Это вот этот?

AlikasS wrote: AlikasS » Пн, 27 авг 2012, 19:21
надо потестить


Тогда присоединяюсь к

Morituruz wrote:Господа, так чем ваше обсуждение окончилось?
Burunduk
 
Posts: 73
Joined: Thu, 03 Oct 2013, 06:57

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

Postby Burunduk » Wed, 27 Nov 2013, 05:09

SeMa wrote:Я с этим плагином не знаком.
Попробуй в каком-нибудь редакторе переконвертировать текст темы в другую кодировку, а затем вставить его в код.


Это в если текст постоянный.

Выяснилось, что глюк с квадратиками происходит при просмотре в майл.ру. В гугл майле все работает нормально.
Причём интересно, что сразу приходит с нормальной темой, а когда зайдёшь в письмо, то квадратики.
Выйдешь из просмотра письма и квадратики появляются и в списке писем. А если обновить, то нормальные тексты.
Но в письмах от других людей русские заголовки работают нормально.
Наверно, это косяк на сайте майл.ру. Скорей всего плагин отсылает plain\text , а остальные обычно html\text.

Пока обойдусь английскими заголовками. Хорошо, что в тексте письма всё нормально.
Burunduk
 
Posts: 73
Joined: Thu, 03 Oct 2013, 06:57

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

Postby Burunduk » Thu, 28 Nov 2013, 06:00

Написал задачу по отправке почты:

Code: Select all
#( тест_отсылки
\ NoActive
RunOnce
NoDel
Action:
   \ 1.пример без шифрованного логина и пароля
    Low-priority \ низкий приоритет
    SMTPLOGON
    S" C:\CronError\SynchronErr.txt" ADD-ATTACH \ прикрепить файл   
    S" текст письма - произошла ошибка" \ текст

    S" Error on registration computer" \ тема
    S" spd38@mail.ru burunduk38@gmail.com patrony38@mail.ru " \ lipko@mail.ru" \ mail кому
    S" spd@iszf.irk.ru" \ mail от кого
 
    S" spd" \ логин
   
    S" " \ пароль
 
    S" mail.iszf.irk.ru" 25 \ Правильный адрес smtp сервера и порт

\    S" mail.is.irk.ru" 25 \ НЕ ПРАВИЛЬНЫЙ адрес smtp сервера ИЛИ порт

    MSG: "Отправка почты.."      \ Это сообщение всегда

   SMTP-SEND&ATTACH
 
    MSG: "После Отправки почты"  \ Это сообщение только при правильном адресе!!!

   ?DUP IF
                DUP MSG: "Ошибка отправки электронной почты : %0 esPICK%"
                S" Внимание! Ошибка отправки электронной почты : %0 esPICK%" CRON-LOG

             ELSE
                MSG: "Внимание! По электронной почте отправлено сообщение об ошибке."
                S" Внимание! По электронной почте отправлено сообщение об ошибке." CRON-LOG
             THEN

)#


Что бы проверить как обрабатывается диагностика ошибок, умышленно задал несуществующее имя почтового сервера.

В результате получаю окошко с сообщением о внутренней ошибке:

тест_отсылки: Внутренняя ошибка. Запрос на отправку или получение данных (when sending on a datagram socket using a sendto call) no address was supplied.

Интересно, что если вернуть правильный адрес, перечитать кронтаб и запустить задачу, то сообщения об ошибке не появляется,
но задача правильно не отрабатывает.
Т.е. перед
MSG: "После Отправки почты" \ Это сообщение только при правильном адресе!!!
задача по-тихому завершается.

Нормальная работа задачи восстанавливается только после перезагрузки Крона.
Burunduk
 
Posts: 73
Joined: Thu, 03 Oct 2013, 06:57

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

Postby Mur466 » Fri, 29 Nov 2013, 09:48

Классное решение с vbscript! Большое спасибо.
Добавлю только, что для соответствия стандартам нужно указать кодировку тела письма (иначе The bat, к примеру, некорректно покажет):
Code: Select all
omail.BodyPart.Charset ="koi8-r"
Mur466
 
Posts: 2
Joined: Fri, 29 Nov 2013, 09:36

PreviousNext

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Bing [Bot] and 2 guests