CONFIGURAZIONE SERVER MAIL

Questo breve manuale contiene informazioni tecniche avanzate. Non sono indispensabili al corretto funzionamento del programma "Registro del professore" e quindi possono essere ignorate.


Il programma "Registro del Professore" consente l'invio allo studente, terminata l'interrogazione, del resoconto dettagliato della verifica orale appena svolta (per avere una anteprima clicca qua). Per far questo Ŕ necessario inserire i parametri della propria casella di posta. Il bottone (B) serve a definire le impostazioni di posta necessarie per tale invio. Il "Registro del Professore" permette la definizione di diverse impostazioni di posta (funzione utile quando invio le email sia da casa che da scuola con provider di connessione differenti. [Solitamente, per evitare che i propri server vengano usati per lo spam, i provider richiedono una procedura di autenticazione personalizzata che quindi varia a secondo del fornitore di accesso verso internet utilizzato]). L'elenco (A) serve ad indicare quale impostazione di posta deve essere utilizzata per l'invio del resoconto.
Per inviare il resoconto della verifiche orali Ŕ necessario abilitare questa funzionalitÓ cliccando sul checkbox "Abilita invio Mail Informative".
Per definire un  set di impostazioni di posta occorre cliccare sul pulsante (B).

Appare la maschera seguente (in figura giÓ compilata):

Per aggiungere una nuova impostazione di posta procedere in questo modo:
- cliccare sul pulsante (1)
- Definire un nome a vostra fantasia (2) che identifichi il set di parametri che si sta digitando.
- Inserire (3) la mail e il nominativo da utilizzare (apparirÓ come mittente nella mail che lo studente riceve).
- Digitare (4) il server SMTP e POP3 della casella di posta utilizzata.
- (5) Inserire  l'utente e la password per accedere al server di posta
- (6) definire il tipo di autenticazione che solitamente Ŕ pop3.
- Se si vuole si pu˛ testare la correttezza delle impostazione si pu˛ provare ad inviare una mail mediante il pulsante (7)

Facendo riferimento alle impostazioni di Outlook Express il set parametri definiti nel "Registro del Professore" possono essere dedotti in questo modo:
il (3) corrisponde a (G) e (F)
il (4) corrisponde a (B) e (A)
il (5) corrisponde a (C) e (D)
il (6) in linea di massima corrisponde a (E)

  

Per richiamare le impostazioni di posta da Outlook Express seguire questi passaggi: menu Strumenti --> Account ...

 

Nel pannello "Account Internet" selezionare l'account e cliccare sul pulsante proprietÓ

LETTURA AUTOMATICA DELLE E-MAIL VIA WEB

Per leggere in automatico  via web gli indirizzi e-mail dei propri studenti Ŕ necessario che questi partecipino a qualche comunitÓ virtuale (ad esempio un forum: io uso phpbb) dove, durante la procedura iniziale di iscrizione, registrino la propria casella di posta. Occorre quindi creare uno script (in php, perl, asp etc) che produca, partendo dal db del bullettin board system prescelto, un file XML con questo schema:

<?xml version='1.0'?>
<QUERYRESULT>
...
   <_XML_ForumUser>
      <user_id>173</user_id>
      <username>(2N)Rossi Mario</username>
      <user_email>rossi.mario@hotmail.it</user_email>
      <user_lastpost_time>1226340548</user_lastpost_time>
      <user_lastvisit>1243859260</user_lastvisit>
   </_XML_ForumUser>
....
</QUERYRESULT>

L'indirizzo dello script va poi riportato nella voce "XML Mail utenti" (C) nel pannello "Server Mail"
Un esempio di script (in php) per costruire questo file Ŕ il seguente:

<?php
function SostituisciAccentate($stringa)
{
    $tmpstr="";
    for ($i=0 ; $i<strlen($stringa) ; $i++)
    {
        $carat=substr($stringa,$i,1);
        // printf("%d",$carat);
        if ( $carat>160 )
            $carat="&#" . (int)$carat . ";";
        elseif ( $carat=="˛")
            $carat="&#242;";
        elseif ($carat=="Ó")
            $carat="&#224;";
        elseif ( ($carat=="Ŕ") || ($carat=="Ú") )
            $carat="&#232;";
        elseif ($carat=="¨")
            $carat="&#249;";
        elseif ($carat=="ý")
            $carat="&#236;";
        $tmpstr=$tmpstr . $carat;
    }
    return $tmpstr;
}

// ***************************************************************************
// LIBRERIE
include("connetti.inc");
include("elenco.inc");

// **************************************************
// MI CONNETTO AL DB
$DB = new DB_Link;
$Link_ID=$DB->Open_Connection("", "User", "host_ip", "Db", "password");
$db=$Link_ID;

printf("%s\n%s\n","<?xml version='1.0'?>","<QUERYRESULT>");
// **************************************************
// ESTRAGGO L'ELENCO
$CmdSQL ="SELECT user_id, username, user_email, user_lastpost_time, user_lastvisit ";
$CmdSQL =$CmdSQL . "FROM phpbb_2008users AS _XML_ForumUser WHERE NOT (user_email='') ORDER BY username";";
$result = mysql_query($CmdSQL,$db);

$Nfields=mysql_num_fields($result);
$nRec=mysql_num_rows($result);
$xml_body="";
if ($nRec!=0)
    {
        for ($i=0 ; $i<$nRec ; $i++)
        {
            $row=mysql_fetch_row($result);
            $xml_body=$xml_body . "<" . mysql_field_table($result, 0) . ">\n";
            for ($f=0; $f < $Nfields; $f++)
            {
                // $Valore=SostituisciAccentate("˛");
                $Valore=SostituisciAccentate($row[$f]);
                $xml_body=$xml_body . "<" . mysql_field_name($result, $f) . ">" . $Valore
                $xml_body=$xml_body . "</" . mysql_field_name($result, $f) . ">\n";
            }
            $xml_body=$xml_body . "</" . mysql_field_table($result, 0) . ">\n";
        }
    }

// ***************************************************************************
// Chiusura Connessione
mysql_free_result($result);
$DB->Close_Connection();
printf("%s",$xml_body);
?>
</QUERYRESULT>
 
LETTURA AUTOMATICA DEGLI ACCESSI AL REGISTRO WEB

Per leggere in automatico  via web gli accessi al  registro WEB fornito con il "REGISTRO DEL PROFESSORE" occorre costruire, mediante uno script (in php, perl, asp etc) un file XML con questo schema:

<?xml version='1.0'?>
<QUERYRESULT>
...
    <_XML_TblAccessi>
       <User>(2N) Rossi Mario</User>
       <NrAccessi>8</NrAccessi>
       <UltimoAccesso>05/03/2009 21.05.26</UltimoAccesso>
    </_XML_TblAccessi>
....
</QUERYRESULT>

uno script (in asp) che crea questo tipo di file XML Ŕ il seguente:

<%
StrSQL="SELECT TblAccessi.User,Count(*) as NrAccessi, "
StrSQL=StrSQL+"Max(CDate(DataConn & ' ' & OraConn)) AS UltimoAccesso "
StrSQL=StrSQL+"FROM TblAccessi WHERE (Pagina='/registro/schedaalunno.asp') "
StrSQL=StrSQL+"AND (User<>'msechi@brescianet.com') AND (Left(User,5)<>'Deny-') "
StrSQL=StrSQL+"AND (InStr(User,'@')<=0) AND (Left(User,1)='(') "
StrSQL=StrSQL+"GROUP BY TblAccessi.User;"
Set ConnAcc=Server.Createobject("ADODB.Connection")
ConnAcc.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/mdb-database/contatore.mdb")
Set RSAcc = ConnAcc.Execute(StrSQL)
response.write "<?xml version='1.0'?>" + vbcrlf+"<QUERYRESULT>"+vbcrlf
Xml_Body=""
if not RsAcc.eof then
    RsAcc.movefirst
    while not rsAcc.eof
        Xml_Body=Xml_Body & "<_XML_TblAccessi>" & vbcrlf
        for i=0 to RsAcc.fields.count-1
            if RsAcc(i).name="User" then
                s=rsAcc.fields(i).value
                t = ""
                if Not (IsNull(s) or s="") then
                    For j = 1 To Len(s)
                        c = Mid(s, j, 1)
                        If Asc(c) > 160 Then
                            c = "&#" & Asc(c) & ";"
                        End if
                        t=t & c
                    Next
                end if
                Xml_Body=Xml_Body & "<" & rsAcc(i).name & ">" & t & "</" & rsAcc(i).name & ">" & vbcrlf
            else
                Xml_Body=Xml_Body & "<" & rsAcc(i).name & ">" & rsAcc(i) & "</" & rsAcc(i).name & ">" & vbcrlf
            end if
        next
        Xml_Body=Xml_Body & "</_XML_TblAccessi>" & vbcrlf
        rsAcc.movenext
    wend
end if
RsAcc.close
response.write Xml_Body
%>
</QUERYRESULT>

L'indirizzo dello script va poi riportato nella voce "XML Accessi Registro" (D) nel pannello "Server Mail"