WebSite X5Help Center

 
Gesuino A.
Gesuino A.
User

Modulo Mail  it

Автор: Gesuino A.
Просмотрено 2951, Подписчики 4, Размещенный 0  

Ciao a tutti,

   vorrei utilizzare il modulo mail per permettere ad un'utente di inviare un messaggio a tutti gli iscritti vorrei poter creare una stuttura simile in una nuova pagina

Nome = "Utente che ha fatto logon"

Oggetto = "Testo libero"

Messaggio = "Testo Libero"

Cliccando poi sul bottone "Invia" vado a spedire questa mail a tutti gli utenti censiti...

Posso farlo utilizzando il modulo Mail a disposizione nell'applicativo?

Grazi mille

Размещено
13 Ответы - 1 Полезно
Tommaso Tarallo
Tommaso Tarallo
User

nel modulo invio email puoi inserire come destinatari delle email tutti gli indirizzi email che gli svrivi tu e non in automatico

Читать больше
Размещено От Tommaso Tarallo
Giorgio C.
Giorgio C.
User

Io utilizzo questo codice che funziona solo per gli utenti registrati in modo automatico, cioè presenti sul database.

Nella pagina modulo per l'invio mail (che deve essere sotto login) in un oggetto codice html inserisci questo codice:

<table><td><td center><b>Mailing list</b><tr>
 </tr><tr><td>&nbsp;</tr>
</tr><form action="inviamail.php" method="POST" enctype="multipart/form-data">
<tr><td align=right>Oggetto:&nbsp;</td>
<td align=left><input type="text" size="30" name="oggetto" value="" /></td>
</tr><td>&nbsp;<tr >
<tr><td><br><td><tr>
<td align=right>Messaggio:&nbsp;</td>
<td align=left><textarea cols="40" rows="10" name="messaggio"></textarea></td>
<tr><td> <td align=left ><input type="submit" value="Invia" /> <input type="reset" value="Reset">
</tr></table></form>

in unaltra pagina che chiamerai inviamail.php (quindi deve essere php controlla nella propietà pagina l'estensione e il nome del file generat!) inserisci quest'altro codice:

<?php
require_once("res/x5engine.php");
require_once("res/access.inc.php");
$pa = Configuration::getPrivateArea();
$user = $pa->whoIsLogged();
$realname=$user['realname'];
$qchiave   = array_keys($imSettings['databases']);
$qdati     = getDbData($qchiave[0]);
$host     = $qdati['host'];
$db_user     = $qdati['user'];
 $db_psw = $qdati['password'];
$db_name = $qdati['database'];
$qfolder   = $imSettings['general']['public_folder'];
$tabella = $imSettings['access']['dbtable'];
$db =  new mysqli ($host, $db_user, $db_psw, $db_name);
$db ->autocommit(FALSE);
if ($db->connect_error) { die("Connessione fallita: " . $db->connect_error); }
$sql = "SELECT * FROM $tabella WHERE  realname ='$realname'";
$result = $db->query($sql);
$row=$result->fetch_assoc();
$mittente = $row['email'];
$sql = "SELECT * FROM $tabella";
$result = $db->query($sql);
if (!$result) {die("Errore nella query $query: " . $db->connect_error);}
$oggetto = $_POST['oggetto'];
$messaggio = $_POST['messaggio'];
$mail_headers = "From: " . $realname .  " <" .  $mittente . ">\r\n";
$mail_headers .= "Reply-To: " .  $mittente . "\r\n";
$mail_headers .= "X-Mailer: PHP/" . phpversion();
$mail_headers .= "MIME-Version: 1.0\n";                                        
$mail_headers .= "Content-type: text/html; charset=UTF-8\n";
while ($row = $result->fetch_assoc() )
{    $nome         =$row['realname'];
 $destinatario = htmlentities($row['email']);
// COSTRUIAMO IL CORPO DELLA MAIL
$mail_body =  $messaggio  . "<BR><BR>" . "\r\n";
if(mail($destinatario, $oggetto, stripslashes($mail_body), $mail_headers ))
{
echo "<p>Mail inviata a ". $nome."</p>";
}else{
echo "<p>Errore!</p>";
} }
?>

Un po' spartana ma funziona.

Читать больше
Размещено От Giorgio C.
Tommaso Tarallo
Tommaso Tarallo
User

Ciao Giorgio, complimenti per gli script, ma non mi è chiaro alcuen cose:

- il form in codice html lo metti in una pagina protetta che la possono vedere solo chi è registrato?

Da quello che ho capito, un utente si registra automaticamente e tramite il form invia una email a tutti?

Oppure il form è accessibile a tutti?

- in quale contesti pratici si può usare?

Grazie!

Читать больше
Размещено От Tommaso Tarallo
Giorgio C.
Giorgio C.
User

Grazie per l'apprezzamento, spero di non aver fatto errori nell'adattarlo.

Si la pagina deve essere protetta per due motivi:

  • Il primo é perché lo script ricava il mittente dal login
  • Il secondo é per evitare che chiunque possa mandare mail ai propri iscritti.

Ciao 

Читать больше
Размещено От Giorgio C.
Tommaso Tarallo
Tommaso Tarallo
User

Ok Giorgio, ma usando i forum e i mailing list di Google, ForumFree, Facebook,... 

non trovo la necessità pratica di questa funzione..

Читать больше
Размещено От Tommaso Tarallo
Giorgio C.
Giorgio C.
User

Vedi tu. Io ho risposto a Gesuino A.

Читать больше
Размещено От Giorgio C.
Tommaso Tarallo
Tommaso Tarallo
User

era un modo per scambiarci le idee, tutto qua.

Читать больше
Размещено От Tommaso Tarallo
Giorgio C.
Giorgio C.
User

Questo modulo io lo avevo pensato per fare una mailing list a tutti i soci del mio gruppo e/o per mandare avvisi agli iscritti.

Siccome i dati sono nel database del sito è più logico e funzionale usare quelli e non doverli copiare altrove.

Infatti prima usavo sendblaster che a livello di mail è più efficente ma devo gestire due liste e tenerle aggiornate.

Così invece ho già tutto aggiornato. Volendo con poche modifiche si possono mandare anche immagini... ma lo script diventerebbe più complesso.

Читать больше
Размещено От Giorgio C.
Gesuino A.
Gesuino A.
User
Автор

Ciao a tutti e grazie mille per il suggerimento.

Inserendo il codice ho modificato i nome per il collegamento al mio db ma quando lo eseguo ho il seguente errore:

"Fatal error: Call to a member function fetch_assoc() on boolean in /membri/nomesito/inviamail.php"

cosa ho dimenticato?

grazie mille

Читать больше
Размещено От Gesuino A.
Giorgio C.
Giorgio C.
User

Non devi modificare nulla. Se hai impostato la registrazione automatica i dati del dj vengono recuperati dallo script

Читать больше
Размещено От Giorgio C.
Gesuino A.
Gesuino A.
User
Автор

Ciao a tutti,

   scusatemi ho risolto il mio problema...è stato sufficiente riportare il tutto alla fase iniziale senza modifiche al codice che l'errore non mi è più comparso.

grazie ancora a tutti per l'aiuto.

Читать больше
Размещено От Gesuino A.
Giorgio C.
Giorgio C.
User

Come dicevo lo script è.molto spartano e non ha funzioni di recupero di errori quindi necessità che il db  sia popolato, che ci sia cioè qual uno già registrato.

Anche la mail è spartana. Se qualcuno volesse si potrebbe perfezionare per creare una modulo per inviare mailinglist 

Читать больше
Размещено От Giorgio C.
Giorgio C.
Giorgio C.
User

e c'è anche una leggerezza... nel senso che da per scontato che non ci siano registrazioni con lo stesso nome reale...

Читать больше
Размещено От Giorgio C.