Version: 1.5.0, by Revan
Developer Last Online: Jun 2014
Version: 3.0.7
Rating:
Released: 03-21-2005
Last Update: 03-29-2005
Installs: 11
DB Changes
No support by the author.
Do you run a large forum, and need to send emails to all your users? Do you have to set the email per batch to a low number because of PHP limitations? And most importantly; would you have liked to see the emails work their magic while you go attend other duties?
If your answer to the aboves is yes, then this hack is for you!
What this hack does, is cache the email you are trying to send in a temporary SQL table, then instead of having a form with hidden fields and forcing you to hit submit, it reads this table at reload.
After the mail is sent, the table is emptied.
Thanks goes to DeMiNe0 for telling me to make this, and for helping me test it
Files modified: 1
DB Tables added: 1
Difficulty: Easy
Show Your Support
This modification may not be copied, reproduced or published elsewhere without author's permission.
I tried this hack, but it doesn't work good with me
my vb version is 3.0.7
when I select a specific user group, the first page goes ok, but the second will send the emails to all groups withous selection
other situation I send an email to 520 320 members for example (by selection) when it finished the first page and pressing next page link, it began sending to all members.
im running vb-3.06 right now and running a html hack so email.php was edited for that as well.. it seems to be working fine but in test mode it sends out emails as well.. the html email hack im running i got from here -- https://vborg.vbsupport.ru/showthread.php?t=72105 im sure other users will want both of these combined.
Thanks for this great hack. As noted above, it does send out email in test mode actually. I tried the following change, which I believe fixed the problem so that it will ONLY test and not actually send email in test mode.
PHP Code:
if (!$_POST['test'] OR !$test)
{
echo $vbphrase['emailing']." \n";
vbmail($user['email'], $subject, $sendmessage, true, $from);
Should be
PHP Code:
if (!$_POST['test'] AND !$test)
{
echo $vbphrase['emailing']." \n";
vbmail($user['email'], $subject, $sendmessage, true, $from);
There also might be a bug that if you force close a email batch that is being processed (either by closing your browser, or restarted web server) , for whatever reason (I noticed I put in the wrong from address and all mail is rejected by MTA), then that mail batch is left over in the mailtemp table, and next time when you try to send mass email, the previous left-over batch will likely be the one being actually ran, instead of the new one you just created.
After waiting for one whole night for this mass email to finish, I only get up to find that the email.php page becomes blank. So I don't even know where it left off. The mailtemp table was left with that email batch, with nowhere it indicates where it left off.
I will have to either dig my apache log or my maillog to find out where it left off, then modify my mass email search creteria to reflect that, otherwise I will have to start again, which will bother my members again, and might or might not work.
Does anybody else experience this timeout / blank page and left-over mail batch problem?
I think it might be a better idea for the email.php program to check if there is a mail batch left over, and let the admin to decide whether to continuue it or drop it. Also, the mail batch should store where it stopped (how many email sent, how many to go, perpage etc), this way it can easily pickup if the program timed out.