if ($gettok(%smail.read,2,32) == 0) { sockwrite -tn get QUIT | halt }
if (%smail.ttl == $null) { set %smail.ttl 0 | set %smail.ttl2 0 } | set %smail.ttl $gettok(%smail.read,2,32) | set %smail.ttl2 $calc(%smail.ttl + %smail.ttl2) | set %smail.rvcd 1 | mail.notice Retrieving message 1 of %smail.ttl
set %smail.ibnum $readini -n sysfiles\mail\settings.ini inbox num | mail.crtfile | set %smail.stat 1 | if ($window(@mailácenter).x != $null) { drawtext -o @mailácenter 2 arial 18 27 26 Inbox } | set %smail.rtrv1 yes | sockwrite -tn get RETR 1 | set %smail.head 1
}
elseif (%smail.rtrv1 == yes) {
if (%smail.read == .) { unset %smail.stat | set %smail.dele 1 | sockwrite -tn get DELE %smail.rvcd | halt }
writeini sysfiles\mail\settings.ini inbox num %smail.ibnum
inc %smail.rvcd | unset %smail.dele
if (%smail.rvcd > %smail.ttl) { dec %smail.rvcd | unset %smail.rtrv1 | unset %smail.stat | sockwrite -tn get QUIT | halt }
else { set %smail.head 1 | set %smail.stat 1 | mail.notice Retrieving message %smail.rvcd of %smail.ttl | mail.crtfile | .timer 1 2 sockwrite -tn get RETR %smail.rvcd }
}
if (%smail.head == 1) {
if ((Content- isin %smail.read && filename isin %smail.read) || (X-Attachments isin %smail.read ) || (_NextPart_ isin %smail.read )) { write sysfiles\mail\error.txt Account number %smail.num $+ : Possible file attachment found | mail.err get Possible file attachment found. Proceeding to next account | halt }
writeini sysfiles\mail\settings.ini outbox num $calc(%mail.ob.num3 - 1) | unset %mail.ob.*
set %smail.num 0
set %smail.send $readini -n sysfiles\mail\settings.ini outbox num
}
unset %smail.quit
if (%smail.num >= %smail.send) { .timermerr off | set %smail.lines $lines($mircdirsysfiles\mail\error.txt) | if (%smail.lines == $null) { set %smail.lines 0 } | set %smail.type get | set %smail.yes 1 | unset %smail.num | mail.notice %smail.num2 of %smail.num3 messages sent with %smail.lines errors | goto next3 }
.timermerr 1 30 mail.err send Connection timeout. Proceeding to next message
.timer 1 2 sockopen send %smail.smtp 25
}
:next3
if (%smail.type == get) {
if (%smail.num == $null) { set %smail.num 0 | set %smail.num4 0 }
:next2
inc %smail.num | if (%smail.num > 3) { goto end } | set %smail.acctname %smail.num $+ mail | set %smail.read $readini -n sysfiles\mail\settings.ini accounts %smail.acctname
if (%smail.read != not $+ $chr(32) $+ set) { mail.notice Now checking mail on account number %smail.num | .timermerr 1 30 mail.err get Connection timeout. Proceeding to next account | .timer 1 2 sockopen get $gettok(%smail.read,1,32) 110 | halt }
goto next2
:end
set %smail.lines $lines($mircdirsysfiles\mail\error.txt) | if (%smail.lines == $null) { set %smail.lines 0 }
if (%smail.num3 == $null) { set %smail.num3 0 } | if (%smail.ttl2 == $null) { set %smail.ttl2 0 } | if (%smail.num2 == $null) { set %smail.num2 0 }
set %mail.sent.q $sline(@mail.status,1).ln | set %mail.sent.q $calc(%mail.sent.q - 2) | set %mail.sent.num $readini -n sysfiles\mail\settings.ini $$1 num
if ((%mail.sent.q > %mail.sent.num) || (%mail.sent.q < 1)) && (%mail.sent.num isnum) { unset %mail.menu | clear @mail.status | echo @mail.status Invalid number | goto end }
set %mail.sent.file $mircdirsysfiles\mail\ $+ $$2 $+ %mail.sent.q $+ .txt
.remove %mail.sent.file
set %mail.sent.num 0 | set %mail.sent.num2 $readini -n sysfiles\mail\settings.ini $1 num | set %mail.sent.num3 %mail.sent.num2
set %mail.sent.count 0 | set %mail.sent.num 0
:next
inc %mail.sent.num | if (%mail.sent.num > %mail.sent.num2) { goto end }
set %mail.sent.file sysfiles\mail\ $+ $2 $+ %mail.sent.num $+ .txt
if ($exists(%mail.sent.file) == $false) { inc %mail.sent.count | goto next }
writeini sysfiles\mail\settings.ini contacts num $calc(%mail.cont.num3 - 1) | unset %mail.cont.*
mail.contacts
}
;Forward/Reply (to) message
alias mail.fwre {
set %mail.sent.q $sline(@mail.status,1).ln | set %mail.sent.q $calc(%mail.sent.q - 2) | set %mail.sent.num $readini -n sysfiles\mail\settings.ini $$1 num
if ((%mail.sent.q > %mail.sent.num) || (%mail.sent.q < 1)) && (%mail.sent.num isnum) { unset %mail.sent.* | halt }
set %mail.sent.file sysfiles\mail\ $+ $$2 $+ %mail.sent.q $+ .txt
if ($$3 == fw:) { set %mail.comp.rcpt To: $$?="Enter the recipient's address:" }
else set %mail.comp.rcpt $read -nl1 %mail.sent.file
set %mail.comp.subject $read -nl2 %mail.sent.file
set %mail.comp.rcpt $gettok(%mail.comp.rcpt,2-,58)
set %mail.comp.subject $$3 $gettok(%mail.comp.subject,2-,58)
mail.compose re $2 $+ %mail.sent.q $+ .txt
:end
unset %mail.sent.* | mail.sent
}
;Returns the contents of the signature file
alias mail.signature {
set %mail.sig.file $readini -n $mircdirsysfiles\mail\settings.ini settings signature
if (%mail.sig.file == Not $+ $chr(32) $+ set) { goto end }
if ($exists(%mail.sig.file) == $false) { write sysfiles\mail\error.txt Signature file not found | goto end }
set %mail.sig.count 0 | sockwrite -tn send á
:next
inc %mail.sig.count | if (%mail.sig.count > $lines(%mail.sig.file)) { goto end }