Email di gruppo perenne in Coda

RE: Email di gruppo perenne in Coda

#11
(05-05-2020, 00:06)SapphireCW Ha scritto: certo, nelle impostazioni puoi cambiare l'intervallo alla voce "Time: Minutes" (Enter a comma separated list of minutes (0-59) for which this task should run on. Enter '*' if this task should run on every minute.)

come si vede dallo screen che ho mandato ho messo * questo significa che ogni minuto esegue il task, però non va
 

RE: Email di gruppo perenne in Coda

#12
prova a sostituire il file in inc>tasks>massmail.php con questo:
<?php
/**
 * MyBB 1.8
 * Copyright 2014 MyBB Group, All Rights Reserved
 *
 * Website: http://www.mybb.com
 * License: http://www.mybb.com/about/license
 *
 */

// Disallow direct access to this file for security reasons
if(!defined("IN_MYBB"))
{
    die(
"Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}

require_once 
MYBB_ROOT."/inc/functions_massmail.php";
require_once 
MYBB_ROOT."inc/datahandlers/pm.php";

function 
task_massmail($task)
{
    global 
$db$mybb$lang$plugins;

    
$query $db->simple_select("massemails""*""senddate <= '".TIME_NOW."' AND status IN (1,2)");
    while(
$mass_email $db->fetch_array($query))
    {
        if(
is_object($plugins))
        {
            
$args = array(
                
'task' => &$task,
                
'mass_email' => &$mass_email
            
);
            
$plugins->run_hooks('task_massmail'$args);
        }

        if(
$mass_email['status'] == 1)
        {
            
$db->update_query("massemails", array('status' => 2), "mid='{$mass_email['mid']}'");
        }

        
$sentcount 0;

        if(!
$mass_email['perpage'])
        {
            
$mass_email['perpage'] = 50;
        }

        if(
strpos($mass_email['htmlmessage'], '<br />') === false && strpos($mass_email['htmlmessage'], '<br>') === false)
        {
            
$mass_email['htmlmessage'] = nl2br($mass_email['htmlmessage']);
        }

        
$mass_email['orig_message'] = $mass_email['message'];
        
$mass_email['orig_htmlmessage'] = $mass_email['htmlmessage'];

        
// Need to perform the search to fetch the number of users we're emailing
        
$member_query build_mass_mail_query(my_unserialize($mass_email['conditions']));

        
$count_query $db->simple_select("users u""COUNT(uid) AS num"$member_query);
        
$mass_email['totalcount'] = $db->fetch_field($count_query"num");

        
$query2 $db->simple_select("users u""u.uid, u.language, u.pmnotify, u.lastactive, u.username, u.email"$member_query, array('limit_start' => $mass_email['sentcount'], 'limit' => $mass_email['perpage'], 'order_by' => 'u.uid''order_dir' => 'asc'));
        while(
$user $db->fetch_array($query2))
        {
            
$replacement_fields = array(
                
"{uid}" => $user['uid'],
                
"{username}" => $user['username'],
                
"{email}" => $user['email'],
                
"{bbname}" => $mybb->settings['bbname'],
                
"{bburl}" => $mybb->settings['bburl'],
                
"[".$lang->massmail_username."]" => $user['username'],
                
"[".$lang->email_addr."]" => $user['email'],
                
"[".$lang->board_name."]" => $mybb->settings['bbname'],
                
"[".$lang->board_url."]" => $mybb->settings['bburl']
            );

            foreach(
$replacement_fields as $find => $replace)
            {
                
$mass_email['message'] = str_replace($find$replace$mass_email['message']);
                
$mass_email['htmlmessage'] = str_replace($find$replace$mass_email['htmlmessage']);
            }

            
// Private Message
            
if($mass_email['type'] == 1)
            {
                
$pm_handler = new PMDataHandler();
                
$pm_handler->admin_override true;

                
$pm = array(
                    
"subject" => $mass_email['subject'],
                    
"message" => $mass_email['message'],
                    
"fromid" => $mass_email['uid'],
                    
"options" => array("savecopy" => 0),
                );

                
$pm['to'] = explode(","$user['username']);
                
$pm_handler->set_data($pm);
                if(!
$pm_handler->validate_pm())
                {
                    
$friendly_errors implode('\n'$pm_handler->get_friendly_errors());
                    
add_task_log($task$lang->sprintf($lang->task_massmail_ran_errorshtmlspecialchars_uni($user['username']), $friendly_errors));
                    
$friendly_errors "";
                }
                else
                {
                    
$pm_handler->insert_pm();
                }
            }
            
// Normal Email
            
else
            {
                switch(
$mass_email['format'])
                {
                    case 
2:
                        
$format "both";
                        
$text_message $mass_email['message'];
                        
$mass_email['message'] = $mass_email['htmlmessage'];
                        break;
                    case 
1:
                        
$format "html";
                        
$text_message "";
                        
$mass_email['message'] = $mass_email['htmlmessage'];
                        break;
                    default:
                        
$format "text";
                        
$text_message "";
                }
                
my_mail($user['email'], $mass_email['subject'], $mass_email['message'], """"""false$format$text_message);
            }
            ++
$sentcount;

            
$mass_email['message'] = $mass_email['orig_message'];
            
$mass_email['htmlmessage'] = $mass_email['orig_htmlmessage'];
        }

        
$update_array = array();

        
$update_array['sentcount'] = $mass_email['sentcount'] + $sentcount;
        
$update_array['totalcount'] = $mass_email['totalcount'];

        if(
$update_array['sentcount'] >= $mass_email['totalcount'])
        {
            
$update_array['status'] = 3;
        }

        
$db->update_query("massemails"$update_array"mid='{$mass_email['mid']}'");
    }

    
add_task_log($task$lang->task_massmail_ran);

Sto lavorando alla traduzione italiana di MyBB 1.8.22.
Installazione 100%
Board 35%
AdminCP 0%

[-] I seguenti utenti ringraziano SapphireCW per questo messaggio:
  • Perdicaro
 

RE: Email di gruppo perenne in Coda

#13
(05-05-2020, 00:21)SapphireCW Ha scritto: prova a sostituire il file in inc>tasks>massmail.php con questo:
<?php
/**
 * MyBB 1.8
 * Copyright 2014 MyBB Group, All Rights Reserved
 *
 * Website: http://www.mybb.com
 * License: http://www.mybb.com/about/license
 *
 */

// Disallow direct access to this file for security reasons
if(!defined("IN_MYBB"))
{
 die(
"Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}

require_once 
MYBB_ROOT."/inc/functions_massmail.php";
require_once 
MYBB_ROOT."inc/datahandlers/pm.php";

function 
task_massmail($task)
{
 global 
$db$mybb$lang$plugins;

 
$query $db->simple_select("massemails""*""senddate <= '".TIME_NOW."' AND status IN (1,2)");
 while(
$mass_email $db->fetch_array($query))
 {
 if(
is_object($plugins))
 {
 
$args = array(
 
'task' => &$task,
 
'mass_email' => &$mass_email
 
);
 
$plugins->run_hooks('task_massmail'$args);
 }

 if(
$mass_email['status'] == 1)
 {
 
$db->update_query("massemails", array('status' => 2), "mid='{$mass_email['mid']}'");
 }

 
$sentcount 0;

 if(!
$mass_email['perpage'])
 {
 
$mass_email['perpage'] = 50;
 }

 if(
strpos($mass_email['htmlmessage'], '<br />') === false && strpos($mass_email['htmlmessage'], '<br>') === false)
 {
 
$mass_email['htmlmessage'] = nl2br($mass_email['htmlmessage']);
 }

 
$mass_email['orig_message'] = $mass_email['message'];
 
$mass_email['orig_htmlmessage'] = $mass_email['htmlmessage'];

 
// Need to perform the search to fetch the number of users we're emailing
 
$member_query build_mass_mail_query(my_unserialize($mass_email['conditions']));

 
$count_query $db->simple_select("users u""COUNT(uid) AS num"$member_query);
 
$mass_email['totalcount'] = $db->fetch_field($count_query"num");

 
$query2 $db->simple_select("users u""u.uid, u.language, u.pmnotify, u.lastactive, u.username, u.email"$member_query, array('limit_start' => $mass_email['sentcount'], 'limit' => $mass_email['perpage'], 'order_by' => 'u.uid''order_dir' => 'asc'));
 while(
$user $db->fetch_array($query2))
 {
 
$replacement_fields = array(
 
"{uid}" => $user['uid'],
 
"{username}" => $user['username'],
 
"{email}" => $user['email'],
 
"{bbname}" => $mybb->settings['bbname'],
 
"{bburl}" => $mybb->settings['bburl'],
 
"[".$lang->massmail_username."]" => $user['username'],
 
"[".$lang->email_addr."]" => $user['email'],
 
"[".$lang->board_name."]" => $mybb->settings['bbname'],
 
"[".$lang->board_url."]" => $mybb->settings['bburl']
 );

 foreach(
$replacement_fields as $find => $replace)
 {
 
$mass_email['message'] = str_replace($find$replace$mass_email['message']);
 
$mass_email['htmlmessage'] = str_replace($find$replace$mass_email['htmlmessage']);
 }

 
// Private Message
 
if($mass_email['type'] == 1)
 {
 
$pm_handler = new PMDataHandler();
 
$pm_handler->admin_override true;

 
$pm = array(
 
"subject" => $mass_email['subject'],
 
"message" => $mass_email['message'],
 
"fromid" => $mass_email['uid'],
 
"options" => array("savecopy" => 0),
 );

 
$pm['to'] = explode(","$user['username']);
 
$pm_handler->set_data($pm);
 if(!
$pm_handler->validate_pm())
 {
 
$friendly_errors implode('\n'$pm_handler->get_friendly_errors());
 
add_task_log($task$lang->sprintf($lang->task_massmail_ran_errorshtmlspecialchars_uni($user['username']), $friendly_errors));
 
$friendly_errors "";
 }
 else
 {
 
$pm_handler->insert_pm();
 }
 }
 
// Normal Email
 
else
 {
 switch(
$mass_email['format'])
 {
 case 
2:
 
$format "both";
 
$text_message $mass_email['message'];
 
$mass_email['message'] = $mass_email['htmlmessage'];
 break;
 case 
1:
 
$format "html";
 
$text_message "";
 
$mass_email['message'] = $mass_email['htmlmessage'];
 break;
 default:
 
$format "text";
 
$text_message "";
 }
 
my_mail($user['email'], $mass_email['subject'], $mass_email['message'], """"""false$format$text_message);
 }
 ++
$sentcount;

 
$mass_email['message'] = $mass_email['orig_message'];
 
$mass_email['htmlmessage'] = $mass_email['orig_htmlmessage'];
 }

 
$update_array = array();

 
$update_array['sentcount'] = $mass_email['sentcount'] + $sentcount;
 
$update_array['totalcount'] = $mass_email['totalcount'];

 if(
$update_array['sentcount'] >= $mass_email['totalcount'])
 {
 
$update_array['status'] = 3;
 }

 
$db->update_query("massemails"$update_array"mid='{$mass_email['mid']}'");
 }

 
add_task_log($task$lang->task_massmail_ran);

Ho disattivato il task e sostitutio il file con quello che mi hai mandato; ho riattivato il task ma nulla sempre in coda, se invece premo la campanella del task massmail lo manda immediatamente
 

RE: Email di gruppo perenne in Coda

#14
ieri sera verso la 1.30 di notte ho messo un messaggio con tempo di invio immediato e chiarmaente è andato in coda come gli altri; però lo lasciato  li per vedere se me lo spediva infatti me lo ha spedito questa mattina alle 11:15, cosa è che non funziona?
 

RE: Email di gruppo perenne in Coda

#15
(05-05-2020, 11:52)Perdicaro Ha scritto: ieri sera verso la 1.30 di notte ho messo un messaggio con tempo di invio immediato e chiarmaente è andato in coda come gli altri; però lo lasciato  li per vedere se me lo spediva infatti me lo ha spedito questa mattina alle 11:15, cosa è che non funziona?

Ieri ho provato anche io su un forum appena installato, c’è qualche bug con il task delle mass mail, stasera vedo di fare qualche prova e capire cos’è che non va
Sto lavorando alla traduzione italiana di MyBB 1.8.22.
Installazione 100%
Board 35%
AdminCP 0%

[-] I seguenti utenti ringraziano SapphireCW per questo messaggio:
  • Perdicaro
 

RE: Email di gruppo perenne in Coda

#16
Ho cercato un pò dappertutto, la "conclusione" generale su quest'argomento è che il task delle massmail viene eseguito ogni qualche ora (non si riesce a capire di preciso quando). Se vuoi mandare delle massmail l'unico modo è quello di avviare il task manualmente.
N.B. io sto continuando ad esaminare il problema e se avrò qualche soluzione la posterò qui.

(chiedo scusa se non è scritto in modo corretto o chiaro ma sono stanchissimo infatti penso che per oggi vado a dormire)
Sto lavorando alla traduzione italiana di MyBB 1.8.22.
Installazione 100%
Board 35%
AdminCP 0%

[-] I seguenti utenti ringraziano SapphireCW per questo messaggio:
  • Perdicaro
 

RE: Email di gruppo perenne in Coda

#17
@Perdicaro il task non viene avviato automaticamente ma c'è bisogno che qualcuno sia collegato al forum e ricarichi la pagina ogni tot minuti per farlo funzionare.
Citazione:Noi non possiamo aiutare tutti, ma tutti possono aiutare qualcuno
[-] I seguenti utenti ringraziano chack1172 per questo messaggio:
  • SapphireCW
 

RE: Email di gruppo perenne in Coda

#18
(05-05-2020, 23:43)chack1172 Ha scritto: il task non viene avviato automaticamente ma c'è bisogno che qualcuno sia collegato al forum e ricarichi la pagina ogni tot minuti per farlo funzionare.

chack ma anche provando a ricaricare la pagina del task, il task non viene eseguito.
Tipo mass mail esecuzione ora 10:20, io dalle 10:18 che ricarico la pagina fino alle 10:22 ma non è stato eseguito il task.
Adesso provo a lasciare il pc acceso fino a domani e vediamo quante volte verrà eseguito il task

Rettifico, bisogna ricaricare l'index del forum per poter eseguire il massmail.
Infatti adesso appena ricaricata l'index (penso anche funzioni con qualsiasi altra pagina del forum) è andato, penso sia dovuto al codice che si trova nel footer.

Quindi penso che se il forum sia usato da qualche utente il massmail dovrebbe andare normalmente.

Vabbè comunque alla fine della fiera conviene inviarla manualmente.
Sto lavorando alla traduzione italiana di MyBB 1.8.22.
Installazione 100%
Board 35%
AdminCP 0%

[-] I seguenti utenti ringraziano SapphireCW per questo messaggio:
  • Perdicaro
 

RE: Email di gruppo perenne in Coda

#19
ci sono altri task che funzionano da soli, ho trovato il perchè; sono basati su crhon e quindi funzionano, il mass mail è bastato su un altro sistema e quindi non funziona
 

RE: Email di gruppo perenne in Coda

#20
MyBB non aggiunge nessun cron di default, strano.
Citazione:Noi non possiamo aiutare tutti, ma tutti possono aiutare qualcuno
 
  

Vai al forum:


Utenti in questa pagina: 1 Ospite(i)