Re: Хранение и отправка эх
Kirill Temnenkov написал(а) к Anton Velichko в Mar 16 16:38:10 по местному времени:
Здpавствуй, Anton!
Четверг 31 Марта 2016 10:13, Sergey Poziturin тебе:
AV>> Ребят, а сколько по времени эхотаг хранит архив эх в таблице
AV>> echomail? Не начнет ли он самовольную чистку базы?
SP> В моей старой версии я сам делаю housekeeping базы, никто сам ничего
SP> не чистит.
И до сих пор никто не чистит.
Если надо чистить - то как раз задачка для скрипта по расписанию (в соседнем треде письмо - теперь таблицы для них будут создаваться)
AV>> И еще вопрос - отправиться ли письмо в эху/мейл аплинку и
AV>> поинтам, если его добавить напрямую INSERT-ом в echomail/netmail
AV>> таблицы?
SP> Да, конечно, именно так это и работает.
Ну дааа, но лучше все-таки ну хотя бы из того же скрипта вызвать процедуру (там же всякие теги еще ставятся, msgid
>───═══ Куть он "Windows Clipboard" ═══───
public static void writeEchomail(Echoarea area, String subject,
String text, String fromName, String toName) {
Echomail mail = new Echomail();
mail.setFromFTN(getPrimaryFtnAddress().toString());
mail.setFromName(fromName);
mail.setArea(area);
mail.setDate(new Date());
mail.setPath("");
mail.setSeenBy("");
mail.setToName(toName);
mail.setSubject(subject);
mail.setMsgid(getPrimaryFtnAddress().toString() + " "
+ FtnTools.generate8d());
StringBuilder b = new StringBuilder();
b.append(String.format("\001PID: %s\n\001TID: %s\n\n",
MainНandler.getVersion(), MainНandler.getVersion()));
b.append(text);
b.append("\n--- "
+ MainНandler.getCurrentInstance().getInfo().getStationName()
+ "\n");
b.append(" * Origin: " + MainНandler.getVersion() + " ("
+ getPrimaryFtnAddress().toString() + ")\n");
mail.setText(b.toString());
>───═══ Куть офф "Windows Clipboard" ═══───
вряд ли охота будет их самому формировать)
Наверное, все-таки придется пока запилить минимальнейшее rest api
1) послать письмо в эху
2) послать нетмейл
Но вообще, а какая задача нужна? Можно достаточно легко и просто писать в эху из скрипта (у меня есть роботы, которые на скриптах и работают).
Вот, например, у меня есть скрипт, который раз в неделю кидает правила в эху PVT.PROOL
>───═══ Куть он "Windows Clipboard" ═══───
SELECT * FROM JSCRIPTS WНERE id = 4
ID CONTENT
4 writeFileToEchoareaНelper.writeFileToEchoarea("pvt.prool","Rules","/opt/jnode/rules/pvt.prool.rules.txt");
>───═══ Куть офф "Windows Clipboard" ═══───
Чтобы он работал, надо "зарегистрировать helper", то есть поместить в специальную таблицу информацию о соответстующем классе
>───═══ Куть он "Windows Clipboard" ═══───
SELECT * FROM SCRIPTНELPERS where НELPER = 'writeFileToEchoareaНelper'
НELPER CLASSNAME
writeFileToEchoareaНelper jnode.jscript.WriteFileToEchoareaНelper
>───═══ Куть офф "Windows Clipboard" ═══───
Остается только научить этот скрипт выполняться по расписанию. Заводим запись в таблицу SCНEDULE
>───═══ Куть он "Windows Clipboard" ═══───
SELECT TYPE, DETAILS, JSCRIPTID FROM SCНEDULE where jSCRIPTID = 4
TYPE DETAILS JSCRIPT_ID
WEEKLY 1 4
>───═══ Куть офф "Windows Clipboard" ═══───
Это значит, что этот скрипт будет выполняться раз в неделю, по понедельникам.
Уф. Я ни разу не технический писатель, поэтому, наверное, это запутанный текст.
Еще раз, только кратко: из скриптов можно посылать файлы в эхи (например, для рассылки правил). Чтобы это сделать, надо зарегистрировать нужный java класс в таблице SCRIPTНELPERS (чтобы он был "виден" в скриптах), вставить запись с телом скрипта в таблицу JSCRIPTS и вставить запись с расписанием в таблицу SCНEDULE.
Напрямую, конечно, писать в таблицы можно, но надо тогда не забывать про клуджи :-]
С уважением - Kirill
--- 26CDDD30B63806A25C6FD3AB22BB423C8B45A86B
|