Back to top

Autore Topic: Temporizzare la phpmail  (Letto 3086 volte)

Offline Xabaras78

  • Appassionato
  • ***
  • Post: 261
    • Mostra profilo
Temporizzare la phpmail
« il: 10 Giu 2007, 15:09:16 »
Ciao a tutti,
come e' noto, provando ad usare la funzione MassMail di joomla su altervista, molte delle mail non arrivano a destinazione, perche' c'e' un limite di invio di 2 mail ogni 3 secondi imposto dal server... Suggeriscono quindi di impostare un timer (tale sleep(3)) all'interno del ciclo while che gestisce la mail... Il problema e'... dove si trova questo ciclo? all'interno di quale file? Se qualcuno sa darmi qualche dritta...
grazie e ciao
 :)
Quizzer!:  chat, giochi, flashgames, e tanto altro...

Offline swedenfox

  • Esploratore
  • **
  • Post: 113
  • Sesso: Maschio
    • Mostra profilo
Re: Temporizzare la phpmail
« Risposta #1 il: 10 Giu 2007, 16:02:04 »
si trova /administrator/components/com_massmail/admin.massmail.php
questa è la funzione
Codice: [Seleziona]
function sendMail() {
global $database, $my, $acl;
global $mosConfig_sitename;
global $mosConfig_mailfrom, $mosConfig_fromname;

$mode = intval( mosGetParam( $_POST, 'mm_mode', 0 ) );
$subject = strval( mosGetParam( $_POST, 'mm_subject', '' ) );
$gou = mosGetParam( $_POST, 'mm_group', NULL );
$recurse = strval( mosGetParam( $_POST, 'mm_recurse', 'NO_RECURSE' ) );
// pulls message inoformation either in text or html format
if ( $mode ) {
$message_body = $_POST['mm_message'];
} else {
// automatically removes html formatting
$message_body = strval( mosGetParam( $_POST, 'mm_message', '' ) );
}
$message_body = stripslashes( $message_body );

if (!$message_body || !$subject || $gou === null) {
mosRedirect( 'index2.php?option=com_massmail&mosmsg=Compilare la form correttamente' );
}

// get users in the group out of the acl
$to = $acl->get_group_objects( $gou, 'ARO', $recurse );

$rows = array();
if ( count( $to['users'] ) || $gou === '0' ) {
// Get sending email address
$query = "SELECT email"
. "\n FROM #__users"
. "\n WHERE id = " . (int) $my->id
;
$database->setQuery( $query );
$my->email = $database->loadResult();

mosArrayToInts( $to['users'] );
$user_ids = 'id=' . implode( ' OR id=', $to['users'] );

// Get all users email and group except for senders
$query = "SELECT email"
. "\n FROM #__users"
. "\n WHERE id != " . (int) $my->id
. ( $gou !== '0' ? " AND ( $user_ids )" : '' )
;
$database->setQuery( $query );
$rows = $database->loadObjectList();

// Build e-mail message format
$message_header = sprintf( _MASSMAIL_MESSAGE, html_entity_decode($mosConfig_sitename, ENT_QUOTES) );
$message = $message_header . $message_body;
$subject = html_entity_decode($mosConfig_sitename, ENT_QUOTES) . ' / '. stripslashes( $subject);

//Send email
foreach ($rows as $row) {
mosMail( $mosConfig_mailfrom, $mosConfig_fromname, $row->email, $subject, $message, $mode );
}
}

$msg = 'E-mail inviata a '. count( $rows ) .' utenti';
mosRedirect( 'index2.php?option=com_massmail', $msg );
}
?>

<---Fai una capatina su JoomlaVista-->
 
    [IMG]http://img137.imageshack.us/img137/2024/moderatorers8.png[/

Offline Xabaras78

  • Appassionato
  • ***
  • Post: 261
    • Mostra profilo
Re: Temporizzare la phpmail
« Risposta #2 il: 10 Giu 2007, 16:51:36 »
sì nel frattempo l'avevo trovato, grazie.... ho messo uno sleep(4) dopo il foreach verso la fine, proprio nella sezione //sendmail... Il problema e' che pare andare tutto bene, poi pero' durante l'invio delle mail, dal pannello di controllo di joomla, invece di dire "inviate mail a tot utenti", dopo aver macinato un po', lo schermo diventa bianco, firefox riporta la dicitura "completato" e nulla piu' si muove... e facendo un controllo la mail e' stata inviata correttamente solo alle prime 10-15 persone...
Quizzer!:  chat, giochi, flashgames, e tanto altro...

Offline swedenfox

  • Esploratore
  • **
  • Post: 113
  • Sesso: Maschio
    • Mostra profilo
Re: Temporizzare la phpmail
« Risposta #3 il: 10 Giu 2007, 16:58:21 »
l'idea dello sleep va bene, ma devi aggiungerci un contatore

ricordati che su av il tempo dell'esecuzione dello script è 15 secondi quindi non arriveresti neanche a 10 iscritti

<---Fai una capatina su JoomlaVista-->
 
    [IMG]http://img137.imageshack.us/img137/2024/moderatorers8.png[/

Offline Xabaras78

  • Appassionato
  • ***
  • Post: 261
    • Mostra profilo
Re: Temporizzare la phpmail
« Risposta #4 il: 10 Giu 2007, 17:33:53 »
Ah questa dei 15 secondi mi mancava...
grazie ancora
Quizzer!:  chat, giochi, flashgames, e tanto altro...

Offline swedenfox

  • Esploratore
  • **
  • Post: 113
  • Sesso: Maschio
    • Mostra profilo
Re: Temporizzare la phpmail
« Risposta #5 il: 10 Giu 2007, 17:36:46 »
Ah questa dei 15 secondi mi mancava...
grazie ancora

ti ho scritto in pm una possibile modifica testala poi se va bene la si posta qui   ;)

o in caso correggila  8)
<---Fai una capatina su JoomlaVista-->
 
    [IMG]http://img137.imageshack.us/img137/2024/moderatorers8.png[/

Offline Xabaras78

  • Appassionato
  • ***
  • Post: 261
    • Mostra profilo
Re: Temporizzare la phpmail
« Risposta #6 il: 10 Giu 2007, 18:06:37 »
Letto e risposto, grazie  ;)
Quizzer!:  chat, giochi, flashgames, e tanto altro...

 



Web Design Bolzano Kreatif