plain text  |  CSS syntax coloring    (use 'plain text' for copying - this code may be inexact)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>MimeConv 2.0</TITLE></HEAD><BODY>
<MIVA STANDARDOUTPUTLEVEL="html,text,compresswhitespace" DEFAULTMACROENCODING="entities">
<## M i m e C o n v  2.0  calling examples
    COPYRIGHT (c) 2000 truXoft - free for personal non-commercial use. 
    NO WARRANTY: use on your own risk only! 
    visit http://truxoft.com/miva for information and updates
##>

<## SETTINGS ##################################################################### ##>
<## install mimeconv and adjust these variables before testing !!! ##>
<MvASSIGN NAME="g.mailserv" VALUE="localhost">
<MvASSIGN NAME="g.from" VALUE="test@localhost">
<MvASSIGN NAME="g.mimedir" VALUE="/test">
<MvASSIGN NAME="g.url" VALUE="http://yourdomain.com/cgi-bin/mimeconv">


<MvIF EXPR="{NOT fexists(g.mimedir $ '/.')}">
 <H3>Temporary directory [<MvEVAL EXPR="{g.mimedir}">] for storing MimeConv files does not exist!</H3>
</MvIF>

<FORM ACTION="mimeconv.mv" METHOD="post">
 <H1>MimeConv 2.0 <SMALL>calling examples</SMALL></H1>
 <P>COPYRIGHT &copy; <MvEVAL EXPR="{s.tm_year}"> <A HREF="http://truxoft.com/miva">truXoft</A> - free for personal non-commercial use</P>
 <P>Please install MimeConv 2.0, set up the mimeconv.conf, and adjust the global variables in the source of this script before proceeding</P>
 
 <H2>Test receiving attachments with MvPOP</H2>
 <MvIF EXPR="{g.popOK}"><P><B>Received:</B> <MvEVAL EXPR="{pop()}"></P></MvIF>
 <TABLE>
  <TR><TD>Login:</TD><TD><INPUT TYPE="text" NAME="login" VALUE="&[g.login:entities];" SIZE="20" MAXLENGTH="30"></TD></TR>
  <TR><TD>Password:</TD><TD><INPUT TYPE="password" NAME="pswd" VALUE="&[g.pswd:entities];" SIZE="20" MAXLENGTH="30"></TD></TR>
  <TR><TD>&nbsp;</TD><TD><INPUT TYPE="submit" NAME="popOK" VALUE="MvPOP"></TD></TR>
 </TABLE>
 <BR>&nbsp;<HR>
 
 <H2>Send a file from the mimedir [<MvEVAL EXPR="{g.mimedir}">] with MvSMTP</H2>
 <MvIF EXPR="{g.smtpOK}"><MvEVAL EXPR="{smtp(g.to,g.file)}"></MvIF>
 <TABLE>
  <TR><TD>File:</TD><TD><INPUT TYPE="text" NAME="file" VALUE="&[g.file:entities];" SIZE="20" MAXLENGTH="60"></TD></TR>
  <TR><TD>To:</TD><TD><INPUT TYPE="text" NAME="to" VALUE="&[g.to:entities];" SIZE="20" MAXLENGTH="60"></TD></TR>
  <TR><TD>&nbsp;</TD><TD><INPUT TYPE="submit" NAME="smtpOK" VALUE="MvSMTP"></TD></TR>
 </TABLE>
 <BR>&nbsp;<HR>
 
 <H2>Send a message and multiple files with MvSMTP</H2>
 <P>Separate file names with commas. Files must be present in your mimedir [<MvEVAL EXPR="{g.mimedir}">].</P>
 <MvIF EXPR="{g.multiOK}">
  <P><B>Sending:</B><BR>
  <MvEVAL EXPR="{sendMulti(g.to2,g.files,g.message)}"></P>
 </MvIF>
 <TABLE>
  <TR><TD COLSPAN="2">Message:<BR>
    <TEXTAREA COLS="40" ROWS="4" NAME="message">
     <MvEVAL EXPR="{encodeentities(g.message)}">
    </TEXTAREA>
  </TD></TR>
  <TR><TD>File:</TD><TD><INPUT TYPE="text" NAME="files" VALUE="&[g.files:entities];" SIZE="20" MAXLENGTH="60"></TD></TR>
  <TR><TD>To:</TD><TD><INPUT TYPE="text" NAME="to2" VALUE="&[g.to2:entities];" SIZE="20" MAXLENGTH="60"></TD></TR>
  <TR><TD>&nbsp;</TD><TD><INPUT TYPE="submit" NAME="multiOK" VALUE="Multipart"></TD></TR>
 </TABLE>
</FORM>
</BODY>
</HTML>
<MvEXIT>


<MvCOMMENT>***************************************************************************
| simple MvSMTP example
***************************************************************************</MVCOMMENT>
<MvFUNCTION NAME="smtp" PARAMETERS="adr,file" STANDARDOUTPUTLEVEL="">
 <MvEVAL EXPR="{'<P><B>Sending ' $ l.file $ ' to ' $ l.adr $ ':</B> '}">
 <MvIF EXPR="{l.file AND (sexists(g.mimedir $ '/' $ l.file) OR fexists(g.mimedir $ '/' $ l.file))}">
 <MvSMTP FROM="{g.from}" TO="{l.adr}" SUBJECT="mimeconv test" MAILHOST="{g.mailserv}">
   <MvCALL ACTION="&[g.url];?E+&[l.file:entitities];" METHOD="GET">
     <MvEVAL EXPR="{s.callvalue}">
   </MvCALL>
 </MvSMTP>
 <MvEVAL EXPR="done<BR><BR>">
 <MvELSE><MvEVAL EXPR="{'File not found in mimedir [' $ g.mimedir $ ']!<BR><BR>'}"></MvIF>
</MVFUNCTION>


<MvCOMMENT>***************************************************************************
| Simple MvPOP example
***************************************************************************</MVCOMMENT>
<MvFUNCTION NAME="pop" STANDARDOUTPUTLEVEL="html,text,compresswhitespace">
 <MvPOP MAILHOST="{g.mailserv}" LOGIN="{g.login}" PASSWORD="{g.pswd}" DIRECTORY="{g.mimedir}">
   <MvASSIGN NAME="mailfile" VALUE="{glosub(s.messagebody,g.mimedir $ '/','')}"> 
   <MvCALL ACTION="&[g.url];?d+&[g.mailfile];" METHOD="GET">
     <PRE><MvEVAL EXPR="{s.callvalue}"></PRE><## capture the file names here ##>
   </MvCALL>
   <MvASSIGN NAME="l.ok" VALUE="{fdelete(s.messagebody)}">
   <MvPOPDELETE>
 </MvPOP>
 <## move the files to a secure location now! ##>
</MVFUNCTION>


<MvCOMMENT>***************************************************************************
| Advanced Multipart MvSMTP example
***************************************************************************</MVCOMMENT>
<MvFUNCTION NAME="sendMulti" PARAMETERS="adr,files,msg" STANDARDOUTPUTLEVEL="">
 <MvASSIGN name="g.separ" value="{'----=_NextPart_' $ random(999999) crypt random(99)}">
 <MvSMTP FROM="{g.from}" TO="{l.adr}" SUBJECT="mimeconv test" MAILHOST="{g.mailserv}">
   <MvEVAL EXPR="{'MIME-Version: 1.0' $ asciichar(10)}">
   <MvEVAL EXPR="{'Content-Type: multipart/mixed;' $ asciichar(10) $ asciichar(9)}">
   <MvEVAL EXPR="{'boundary=' $ asciichar(34) $ g.separ $ asciichar(34) $ asciichar(13) $ asciichar(10) $ asciichar(10)}">
   <MvEVAL EXPR="{'This is a multi-part message in MIME format.' $ asciichar(13) $ asciichar(10) $ asciichar(10)}">
   <MvEVAL EXPR="{'--' $ g.separ $ asciichar(10)}">
   <MvEVAL EXPR="{'Content-Type: text/plain; charset="iso-8859-1"' $="$"asciichar(10)}">
   <MvEVAL EXPR="{'Content-Transfer-Encoding: quoted-printable' $ asciichar(13) $ asciichar(10) $ asciichar(10)}">
   <MvEVAL EXPR="{encodeentities(l.msg)}">
   <MvASSIGN NAME="l.nr" VALUE="1">
   <MvASSIGN NAME="l.file" VALUE="{gettoken(l.files,',',l.nr)}">
   <MvASSIGN NAME="l.res" VALUE="Files sent:">
   <MvWHILE EXPR="{l.file}">
     <MvASSIGN NAME="l.file" VALUE="{gettoken(l.files,',',l.nr)}">
     <MvIF EXPR="{l.file AND (sexists(g.mimedir $ '/' $ l.file) OR fexists(g.mimedir $ '/' $ l.file))}">
       <MvEVAL EXPR="{asciichar(13) $ asciichar(10) $ asciichar(10) $ '--' $ g.separ $ asciichar(10)}">
       <MvCALL ACTION="&[url];?E+&[l.file:entitities];" METHOD="GET">
          <MvEVAL EXPR="{s.callvalue}">
       </MvCALL>
       <MvASSIGN NAME="l.res" VALUE="{l.res $ l.file $ ', '}">
     </MvIF>
     <MvASSIGN NAME="l.nr" VALUE="{l.nr+1}">
   </MvWHILE>
   <MvEVAL EXPR="{asciichar(10) $ '--' $ g.separ $ '--' $ asciichar(10)}">
 </MvSMTP>
 <MvEVAL EXPR="{l.res}">
</MVFUNCTION>