PDA

View Full Version : Setting up in scheduled tasks email sending


zero477
11-13-2012, 05:20 PM
Hello to all,

I am trying to set up an email task to send emails using an external php script ... When I clic in the "Scheduled Tasks Manager" on "Run Now" the email is sent perfectly ...

But when the task manager runs it I never receive the email and I also cannot find any log ...

Can someone help me?? this is the code:




<?php

/*================================================= =====================*\
|| ################################################## ################## ||
|| # vBulletin 4.2.0 Patch Level 2 - Licence Number VBS969724D
|| # ---------------------------------------------------------------- # ||
|| # Copyright Š2000-2012 vBulletin Solutions Inc. All Rights Reserved. ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
|| # ########### | ################ # ||
|| ################################################## ################## ||
\*================================================ ======================*/

// ######################## SET PHP ENVIRONMENT ###########################

error_reporting(E_ALL & ~E_NOTICE);
if (!is_object($vbulletin->db))
{
exit;
}

// ################################################## ######################
// ######################### START MAIN SCRIPT ############################
// ################################################## ######################
echo getcwd();


require_once("/######/phpmailer/class.phpmailer.php");
require_once("/######/phpmailer/class.smtp.php");

$mail = new phpmailer();



$mail->IsSMTP(); // telling the class to use is SMTP
$mail->SMTPDebug = 2; // enables SMTP debug information
// PUEDES PONER DOS SI UNO NO SIRVE (SIRVE EL OTRO) DE ESTA MANERA: "###############" //
$mail->SMTPAuth=true; // enable SMTP authentication
$mail->Host="samplehost"; // sets the SMTP server
$mail->Port=###; // set the SMTP port
$mail->Username="#####@####"; // SMTP account username
$mail->Password="#######"; // SMTP account password
$mail->From = "no-#####@#####";
$mail->FromName = "Iubik";
$mail->AddReplyTo('no-#####@######', 'No Responder');
$mail->WordWrap = 70;
$mail->SMTPSecure = 'ssl';

/////////////////////////////////////
//////// MAIL CLIENTE ALERTA 1 //////
/////////////////////////////////////

$ahora = date('l jS \of F Y h:i:s A');

$to_name= "Eddie Aguilar";
$to = "#############";
$subject = "Prepare su viaje";
$message ="<p>THIS IS THE MESSAGE</p>



";
$message = wordwrap($message,70);


$text_body ="THIS IS THE MESSAGE



";

$mail->Subject = $subject;
$mail->Body = $message;
$mail->AltBody = $text_body;
$mail->AddAddress ('#####@#########','Eddie Aguilar');

if(!$mail->Send())
// SI EL MAIL SE MANDA MAL
{echo "There has been a mail error sending to email <br>";}
else
// SI EL MAIL SE MANDA BIEN SALE ESTO
{ echo "Email Sent";}

?>







This is another script that has the same the same problem an uses the vb_mail class




<?php

/*================================================= =====================*\
|| ################################################## ################## ||
|| # vBulletin 4.2.0 Patch Level 2 - Licence Number VBS969724D
|| # ---------------------------------------------------------------- # ||
|| # Copyright Š2000-2012 vBulletin Solutions Inc. All Rights Reserved. ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
|| ################################################## ################## ||
\*================================================ ======================*/

// ######################## SET PHP ENVIRONMENT ###########################

error_reporting(E_ALL & ~E_NOTICE);
if (!is_object($vbulletin->db))
{
exit;
}

// ################################################## ######################
// ######################### START MAIN SCRIPT ############################
// ################################################## ######################

vbmail_start();

$evioa = "zero477@hotmail.com";
$sujeto = "Este es el email bueno";
$mensaje = "este es un mensaje para probar la funcion email send";
vbmail($evioa, $sujeto, $mensaje);
$emails .= iif($emails, ', ');
$emails .= $userinfo['username'];


vbmail_end();

if ($emails)
{
log_cron_action($emails, $nextitem, 1);
}





?>

kh99
11-13-2012, 08:12 PM
When you edit the scheduled task, what do you have for the "Active" and "Log Entries" settings? And what did you choose for "Hour", "Minute", etc? If you have "Log Entries" set to yes and you're not seeing anything in the log then it seems like it must not be running for some reason.

zero477
11-13-2012, 08:56 PM
When you edit the scheduled task, what do you have for the "Active" and "Log Entries" settings? And what did you choose for "Hour", "Minute", etc? If you have "Log Entries" set to yes and you're not seeing anything in the log then it seems like it must not be running for some reason.

Hello kh99,

Thanks very much for your answer! I have Log Entries set up to YES ... and active set up to YES too.

For what reason it could not run??? the Schedule task manager says "One minute Ago" and so on ...

Greetings,
Eddie

kh99
11-13-2012, 09:22 PM
You are right, if the scheduled task manager says "One minute Ago" then it must be running your task. I tried the second code you posted (using vbmail) and it works for me. I had to change the last part like this:
//if ($emails)
//{
log_cron_action('', $nextitem, 1);
//}



because that script has no $emails, but when I do that I get emails and a line in the scheduled task log. I can't try the first script because I don't have the email classes.

Maybe try commenting out your "echo" lines and see if that makes any difference.

zero477
11-13-2012, 09:46 PM
Hello kh99,

Thanks again for your answer ...

I still have the same problem ... when I clic on run task ... everything works fine (i can see the log now)

But if vbulletin does the job automatically I cannot see the log and I do not receive the emails.

This is the script I have:



<?php

/*================================================= =====================*\
|| ################################################## ################## ||
|| # vBulletin 4.2.0 Patch Level 3
|| # ---------------------------------------------------------------- # ||
|| # Copyright Š2000-2012 vBulletin Solutions Inc. All Rights Reserved. ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
|| ################################################## ################## ||
\*================================================ ======================*/

// ######################## SET PHP ENVIRONMENT ###########################

error_reporting(E_ALL & ~E_NOTICE);
if (!is_object($vbulletin->db))
{
exit;
}

// ################################################## ######################
// ######################### START MAIN SCRIPT ############################
// ################################################## ######################

vbmail_start();

$evioa = "zero477@hotmail.com";
$sujeto = "Este es el email bueno";
$mensaje = "este es un mensaje para probar la funcion email send";
vbmail($evioa, $sujeto, $mensaje);
$emails .= iif($emails, ', ');
$emails .= $userinfo['username'];


vbmail_end();

// if ($emails)
//{
log_cron_action('', $nextitem, 1);
//}





?>




Do you see any errors?

Thanks again,
Eddie

kh99
11-14-2012, 02:59 PM
I don't see any errors - that's what my script looked like when I tried it (except of course I also changed the email address). What you posted has a blank line at the beginning - I'm not sure if your file has that, but if it does you might try removing it so that <?php is the very first thing in the file.

Is your site active? If you have "Use Mailqueue System" and "Use Cron Based Sending" set to yes in the email options, then I guess it's possible that you have emails waiting in the queue.

zero477
11-14-2012, 03:57 PM
Thanks again kh99,

The strange thing is that there is not even a log :S

I have now:

Use Cron Based Sending = Yes
Use Mailqueue System = Yes

Can I check somewhere if there are emails in the queue?

I have scheduled the task directly on Cpanel now ... I would wish I could make it work from vbulletin:(

Greetings,
Eddie

kh99
11-14-2012, 04:10 PM
The strange thing is that there is not even a log :S

Yes, it seems like there should be a log entry.


Can I check somewhere if there are emails in the queue?

On the main admincp page there's a "Number of Queued E-Mails" line. (I think if it's missing it means there are none).