Visualizzazione risultati 1 fino 8 di 8

Discussione: [Joomla]Mass_mail con sleep

  1. #1
    Guest

    Predefinito [Risolto-Joomla]Mass_mail

    Ragazzi mi aiutate col componente mass mail di joomla

    visto che su altervista ci sono le limitazioni delle mail (2 ogni 3 sec) e lo script che non puo' durare oltre 15 secondi
    c'è il problema del com_massmail che all'esecuzione dello stesso manda solo 10 mail

    avevo visto un post di evcz per phpnuke ma putroppo non saprei come utilizzarlo per joomla

    Codice PHP:
    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 );
    }
    ?>
    Come potrei modificarlo ?
    se vi serve qualke richiamo ve lo posto
    Ultima modifica di Swedenfox : 14-06-2007 alle ore 19.44.13 Motivo: risolto

  2. #2
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    La cosa migliore, secondo me, è quella di mettere tutti gli indirizzi e-mail nel campo BCC (CCN in italiano) così si può inviare una sola e-mail. Bisognerebbe vedere com'è la funzione mosMail per effettuare la modifica che dico io.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  3. #3
    Guest

    Predefinito

    grazie funcool per la celere risposta

    ti posto la funziona
    Codice PHP:
    /**
    * Mail function (uses phpMailer)
    * @param string From e-mail address
    * @param string From name
    * @param string/array Recipient e-mail address(es)
    * @param string E-mail subject
    * @param string Message body
    * @param boolean false = plain text, true = HTML
    * @param string/array CC e-mail address(es)
    * @param string/array BCC e-mail address(es)
    * @param string/array Attachment file name(s)
    */
    function mosMail($from, $fromname, $recipient, $subject, $body, $mode=0, $cc=NULL, $bcc=NULL, $attachment=NULL ) {
    global
    $mosConfig_debug;
    $mail = mosCreateMail( $from, $fromname, $subject, $body );

    // activate HTML formatted emails
    if ( $mode ) {
    $mail->IsHTML(true);
    }

    if(
    is_array($recipient) ) {
    foreach (
    $recipient as $to) {
    $mail->AddAddress($to);
    }
    } else {
    $mail->AddAddress($recipient);
    }
    if (isset(
    $cc)) {
    if(
    is_array($cc) )
    foreach (
    $cc as $to) $mail->AddCC($to);
    else
    $mail->AddCC($cc);
    }
    if (isset(
    $bcc)) {
    if(
    is_array($bcc) )
    foreach (
    $bcc as $to) $mail->AddBCC($to);
    else
    $mail->AddBCC($bcc);
    }
    if (
    $attachment) {
    if (
    is_array($attachment) )
    foreach (
    $attachment as $fname) $mail->AddAttachment($fname);
    else
    $mail->AddAttachment($attachment);
    }
    // if
    $mailssend = $mail->Send();

    if(
    $mosConfig_debug ) {
    //$mosDebug->message( "Mails send: $mailssend");
    }
    if(
    $mail->error_count > 0 ) {
    //$mosDebug->message( "Invio messaggio $fromname <$from> circa $subject inviato a $recipient <b>fallito</b><br /><pre>$body</pre>", false );
    //$mosDebug->message( "Errore Mailer: " . $mail->ErrorInfo . "" );
    }
    return
    $mailssend;
    }
    // mosMail
    thnx

  4. #4
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Prova a modificare questo pezzo:
    Codice PHP:
    foreach ($rows as $row) {
    mosMail( $mosConfig_mailfrom, $mosConfig_fromname, $row->email, $subject, $message, $mode );
    }
    In questo modo:
    Codice PHP:
    $bcc=array();
    foreach (
    $rows as $row)
    $bcc[]=$row->email;
    mosMail( $mosConfig_mailfrom, $mosConfig_fromname, $mosConfig_mailfrom, $subject, $message, $mode, NULL, $bcc );
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  5. #5
    Guest

    Predefinito

    thnx
    ma con questa modifica si evita che lo script vada in time out ?
    stasera lo testo (devo crearmi una 20ina di mail apposta ) e ti riferisco se funziona

  6. #6
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    In questo modo dovrebbe metterti tutti ci indirizzi i BCC e in A c'è l'indirizzo del mittente, così viene mandata una e-mail sola e gli utenti non vedranno gli indirizzi e-mail degli altri.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da funcool
    In questo modo dovrebbe metterti tutti ci indirizzi i BCC e in A c'è l'indirizzo del mittente, così viene mandata una e-mail sola e gli utenti non vedranno gli indirizzi e-mail degli altri.
    grazie mille funcool Funziona

  8. #8
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Ti rispondo qui al messaggio privato.
    Citazione Originalmente inviato da Swedenfox
    ciao funcool

    il campo email su bcc non è facilmente recuperabile

    è un aspetto che potrebbe dare dei problemi ?


    thnx
    No, chi riceve le e-mail non dovrebbe vedere gli indirizzi degli altri utenti. Li vedrebbe se al posto di BCC si usasse CC.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •