cortesi Fri Dec 21 06:40:08 2001 EDT Modified files: /phpdoc/it/functions mail.xml Log: long due update to EN current
Index: phpdoc/it/functions/mail.xml diff -u phpdoc/it/functions/mail.xml:1.8 phpdoc/it/functions/mail.xml:1.9 --- phpdoc/it/functions/mail.xml:1.8 Wed Dec 12 15:51:54 2001 +++ phpdoc/it/functions/mail.xml Fri Dec 21 06:40:08 2001 @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!-- EN-Revision: 1.15 Maintainer: fabio Status: ready --> +<!-- EN-Revision: 1.34 Maintainer: cortesi Status: ready --> +<!-- CREDITS: fabio --> <reference id="ref.mail"> <title>Funzioni di Mail</title> <titleabbrev>Mail</titleabbrev> @@ -7,8 +8,58 @@ <simpara> La funzione <function>mail</function> consente di inviare mail. </simpara> - </partintro> + <variablelist> + <title>Direttive di configurazione per Mail</title> + + <varlistentry id="ini.smtp"> + <term> + <parameter>SMTP</parameter> + <type>string</type> + </term> + <listitem> + <para> + Nome DNS o indirizzo IP del server SMTP che PHP sotto Windows + deve usare per spedire posta elettronica con la funzione +<function>mail</function> + .</para> + </listitem> + </varlistentry> + + <varlistentry id="ini.sendmail-from"> + <term> + <parameter>sendmail_from</parameter> + <type>string</type> + </term> + <listitem> + <para> + Quale campo "From:" devono avere i messaggi inviati da + PHP sotto Windows.</para> + </listitem> + </varlistentry> + + <varlistentry id="ini.sendmail-path"> + <term> + <parameter>sendmail_path</parameter> + <type>string</type> + </term> + <listitem> + <para> + Dove trovare il programma <command>sendmail</command>, + solitamente <filename>/usr/sbin/sendmail</filename> oppure + <filename>/usr/lib/sendmail</filename>. + <command>configure</command> cerca di trovare il file + e lo imposta di default, ma se non riesce a localizzarlo, + lo si può impostare qui.</para> + <para> + I sistemi che non usano sendmail devono impostare questa direttiva + al wrapper che i rispettivi sistemi di posta offrono, se esistenti. + Per esempio, gli utenti di <ulink url="&url.qmail;">Qmail</ulink> + possono normalmente impostarla a + <filename>/var/qmail/bin/sendmail</filename>.</para> + </listitem> + </varlistentry> + </variablelist> + </partintro> <refentry id="function.mail"> <refnamediv> @@ -21,7 +72,7 @@ <funcprototype> <funcdef>bool <function>mail</function></funcdef> <paramdef>string <parameter>a</parameter></paramdef> - <paramdef>string <parameter>soggetto</parameter></paramdef> + <paramdef>string <parameter>oggetto</parameter></paramdef> <paramdef>string <parameter>messaggio</parameter></paramdef> <paramdef>string <parameter><optional>header_addizionali</optional></parameter> @@ -33,93 +84,139 @@ </funcprototype> </funcsynopsis> <simpara> - <function>mail</function> invia automaticamente il messaggio specificato - in <parameter>messaggio</parameter> al destinatario specificato in - <parameter>a</parameter>. Destinatari multipli possono essere specificati - mettendo una virgola tra ogni indirizzo in <parameter>a</parameter>. + <function>mail</function> invia automaticamente il messaggio specificato + in <parameter>messaggio</parameter> al destinatario specificato in + <parameter>a</parameter>. Destinatari multipli possono essere specificati + mettendo una virgola tra ogni indirizzo in <parameter>a</parameter>. Email con +allegati e tipi speciali di + contenuto possono essere spedite usando questa funzione. Questo è + possibile tramite la codifica MIME. Per maggiori informazioni, fare riferimento a + <ulink url="http://www.zend.com/zend/spotlight/sendmimeemailpart1.php" + >http://www.zend.com/zend/spotlight/sendmimeemailpart1.php</ulink> o + <ulink url="&url.rfc1896;">RFC 1896</ulink>). </simpara> <para> + <function>mail</function> restituisce &true; se la mail è stata spedita con + successo, altrimenti restituisce &false;. + </para> + <para> <example> <title>Inviare mail.</title> <programlisting> -mail("[EMAIL PROTECTED]", "Soggetto", "Linea 1\nLinea 2\nLinea 3"); +<![CDATA[ +mail("[EMAIL PROTECTED]", "Oggetto", "Linea 1\nLinea 2\nLinea 3"); +]]> </programlisting> </example></para> <simpara> Se viene passata come parametro una quarta stringa, questa stringa viene inserita alla fine dell'intestazione (header). Ciò viene tipicamente usato per aggiungere intestazioni - supplementari. Multipli intestazioni supplementari sono separati da un carattere di "a capo" (newline). + supplementari. Intestazioni multiple supplementari sono separate da un carattere + di "a capo" (sia newline che carriage return). </simpara> + <note> + <para> + È necessario usare <literal>\r\n</literal> per separare le intestazioni, + alcuni mail transfer agent sotto Unix potrebbero funzionare anche solo con un +singolo newline + (<literal>\n</literal>). L'intestazione Cc: è case sensitive e deve essere +scritta + esattamente così <literal>Cc:</literal> sui sistemi Win32. L'intestazione Bcc: + non è supportata dai sistemi Win32. + </para> + </note> <para> <example> <title>Invio di mail con intestazioni supplementari.</title> <programlisting> -mail("[EMAIL PROTECTED]", "soggetto", $messaggio, - "From: webmaster@$SERVER_NAME\nReply-To: webmaster@$SERVER_NAME\nX-Mailer: PHP/" . phpversion()); +<![CDATA[ +mail("[EMAIL PROTECTED]", "oggetto", $messaggio, + "From: webmaster@$SERVER_NAME\r\n" + ."Reply-To: webmaster@$SERVER_NAME\\r\n" + ."X-Mailer: PHP/" . phpversion()); +]]> </programlisting> </example> - Con il quinto parametro è possibile impostare dei parametri addizionali a linea di comando per - l'attuale mailer. Nell'esempio che segue viene impostato il corretto valore per il Return-Path per - sendmail. Normalmente sendmail aggiunge l'intestazione X-Authentication-Warning - quando si utilizza il parametro -f, questo perchè l'utente del webserver probabilmente non è - membro degli utenti trusted. Per annullare questo warning, occorre inserire l'utente del web server - tra gli utenti trusted nel file di configurazione di sendmail. </para> - <note> - <para> - Questo quinto parametro è stato aggiunto in PHP 4.0.5. - </para> - </note> <para> + Con il parametro <parameter>parametri_addizionali</parameter> + è possibile impostare parametri addizionali a linea di comando per + il programma configurato per inviare mail usando <literal>sendmail_path</literal> + . Per esempio si può impostare il corretto valore per envelope sender di + sendmail. Potrebbe essere necessario aggiungere l'utente che ha in esecuzione il +server web + alla configurazione di sendmail per prevenire l'aggiunta + dell'intestazione 'X-Warning' quando si imposta envelope sender + in questo modo. <example> <title>Invio di mail con intestazioni supplementari e impostazione dei parametri addizionali a linea di comando.</title> <programlisting> -mail("[EMAIL PROTECTED]", "soggetto", $messaggio, - "From: webmaster@$SERVER_NAME", "-fwebmaster@$SERVERNAME"); +<![CDATA[ +mail("[EMAIL PROTECTED]", "oggetto", $messaggio, + "From: webmaster@$SERVER_NAME", "-fwebmaster@$SERVER_NAME"); +]]> </programlisting> </example> - E' possibile costruire messaggi complessi utilizzando la tecnica di concatenazione delle stringhe. + </para> + <note> + <para> + Questo quinto parametro è stato aggiunto in PHP 4.0.5. + </para> + </note> + <para> + È possibile costruire messaggi complessi utilizzando la tecnica di + concatenazione delle stringhe. <example> <title>Invio di mail complessa.</title> <programlisting> +<![CDATA[ /* destinatari */ -$destinatari .= "Mary <[EMAIL PROTECTED]>" . ", " ; //note the comma -$destinatari .= "Kelly <[EMAIL PROTECTED]>" . ", "; -$destinatari .= "[EMAIL PROTECTED]"; +$destinatari .= "Maria <[EMAIL PROTECTED]>" . ", " ; // notare la virgola +$destinatari .= "Kelly <[EMAIL PROTECTED]>"; -/* soggetto */ -$soggetto = "Promemoria compleanno per Agosto"; +/* oggetto */ +$oggetto = "Promemoria compleanni per Agosto"; /* messaggio */ -$messaggio .= "La seguente mail include una tabella ASCII formattata\n"; -$messaggio .= "Giorno \t\tMese \t\tAnno\n"; -$messaggio .= "3-terzo \t\tAgo \t\t1970\n"; -$messaggio .= "17-esimo\t\tAgo \t\t1973\n"; - -/* è possibile inserire una blocco con la firma */ -$messaggio .= "--\r\n"; //Delimitatore di firma -$messaggio .= "Promemoria di compleanno con senza proprietà d'autore ma di pubblico dominio"; - -/* intestazioni addizionali per errori, campo CC, BCC, etc */ - -$intestazioni .= "From: Birthday Reminder <[EMAIL PROTECTED]>\n"; -$intestazioni .= "X-Sender: <[EMAIL PROTECTED]>\n"; -$intestazioni .= "X-Mailer: PHP\n"; // mailer -$intestazioni .= "X-Priority: 1\n"; // Messaggio urgente! -$intestazioni .= "Return-Path: <[EMAIL PROTECTED]>\n"; // Indirizzo di ritorno per errori +$messaggio = ' +<html> +<head> + <title>Promemoria compleanni per Agosto</title> +</head> +<body> +<p>Questi sono i compleanni di Agosto!</p> +<table> + <tr> + <th>Persona</th><th>Giorno</th><th>Mese</th><th>Anno</th> + </tr> + <tr> + <td>Joe</td><td>3</td><td>Agosto</td><td>1970</td> + <td>Sally</td><td>17</td><td>Agosto</td><td>1973</td> + </tr> +</table> +</body> +</html> +'; + +/* Per inviare email in formato HTML, si deve impostare l'intestazione Content-type. +*/ +$intestazioni = "MIME-Version: 1.0\r\n"; +$intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n"; -/* Se si vuole inviare una mail in formato html, togliere il commento alla seguente linea */ -// $intestazioni .= "Content-Type: text/html; charset=iso-8859-1\n"; // Tipo Mime +/* intestazioni addizionali */ +$intestazioni .= "From: Promemoria Compleanni <[EMAIL PROTECTED]>\r\n"; -$intestazioni .= "cc:[EMAIL PROTECTED]\n"; // CC in copia a -$intestazioni .= "bcc:[EMAIL PROTECTED], [EMAIL PROTECTED]\n"; // BCC in copia cieca a +$intestazioni .= "Cc: [EMAIL PROTECTED]\r\n"; +$intestazioni .= "Bcc: [EMAIL PROTECTED]\r\n"; /* ed infine l'invio */ -mail($destinatari, $soggetto, $mesaggio, $intestazioni); +mail($destinatari, $oggetto, $messaggio, $intestazioni); +]]> </programlisting> </example> </para> - + <note> + <para> + Assicurarsi di non avere nessun carattere di newline nei parametri + <parameter>a</parameter> o <parameter>oggetto</parameter>, + o la mail non verrà spedita correttamente. + </para> + </note> </refsect1> </refentry> @@ -142,12 +239,14 @@ </simpara> <para> <example> - <title>Calcolare l'hash e sottoscrivere un utente</title> + <title>Calcolare l'hash e iscrivere un utente</title> <programlisting> -$utente = "[EMAIL PROTECTED]"; +<![CDATA[ +$utente = "[EMAIL PROTECTED]"; $hash = ezmlm_hash ($utente); $query = sprintf ("INSERT INTO esempio VALUES (%s, '%s')", $hash, $utente); $db->query($query); // tramite l'interfaccia db PHPLIB +]]> </programlisting> </example> </para> @@ -156,7 +255,7 @@ </reference> - <!-- Keep this comment at the end of the file +<!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t