Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.5 > vBulletin 3.5 Add-ons

Reply
 
Thread Tools
Mass Mail/Newsletters Via Cronjob Details »»
Mass Mail/Newsletters Via Cronjob
Version: 1.1, by Jafo232 Jafo232 is offline
Developer Last Online: Oct 2022 Show Printable Version Email this Page

Version: 3.5.3 Rating:
Released: 01-03-2006 Last Update: 01-05-2006 Installs: 32
DB Changes Uses Plugins
Additional Files  
No support by the author.

For those of you who use the "Send Email to Users" function in the admin cp may have noticed it is less than efficient. This is really not the Vbulletin teams fault, it is just the fact that sending a lot of emails via PHP is like emptying lake with a bucket.

For administrators with a very large user base, sending email this way is not only very time consuming, but can be taxing on a servers resources.

With this extension, you can save your mass mailings or newsletters in a batch that can be sent at any time you wish, or on a schedule using a program like crontab.

You can even use a separate server to send the email if you wish.

Version 1.1 now supports the hack Send HTML via admin CP so you can batch mail HTML emails.



Requirements:

Perl (Some hosts call this CGI) w/ the DBI module (MySQL driver)
Net::SMTP module IF you plan on using SMTP (common Perl module)
Sendmail or SMTP
Access to crontab (for scheduled processing)
Telnet/SSH access to your server (for testing purposes only)

As for Telnet/SSH access, you will most likely need this unless you can schedule a cronjob via your servers admin GUI.


CHANGELOG:

01/05/2005: Added support for SMTP
01/05/2005: Modified code to include Vbulletin generated mail headers and encoding


Installation (detailed in readme file):

Install the product via your admin cp.

Open the list.cgi file and edit the database variables and upload to server IN ASCII MODE. Do not use Binary or Auto mode to upload list.cgi. You should upload this file in an area that is NOT accessible by a web browser.

Click Install

That is it. If you wish to use scheduled batches then you will have to set up a cronjob to execute the list.cgi file.

You can execute the list.cgi file any time you wish on your server like so:

"perl list.cgi"



What does this do exactly?:

In a nutshell, when you enter a message into the mass mail feature of Vbulletin, it saves the message details to a new table created by the product (massmail). When list.cgi is executed, it will go through this table and email everyone in the table and delete their entry after the mail is sent.



Usage:

The only thing you should do differently is set the "Emails to send at once" value to at least the amount of users you have registered. It defaults at 500 but the whole point of this hack is to eliminate having to send email in blocks and wait for the process to finish. Just set it to a real high number.



To Do:

For those Windows servers, I suppose the Send_Mail routine could use SMTP. This is not hard to do I just never use Windows servers so what's the point?

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #12  
Old 01-05-2006, 08:45 PM
Jafo232 Jafo232 is offline
 
Join Date: May 2004
Posts: 1,122
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by tuanluu
$path_to_sendmail = '/usr/lib/sendmail'; -------> for win 2003 what should I put?

"Upload the list.cgi file IN ASCII (NOT BINARY OR AUTO) mode somewhere on your server where it CANNOT be accessed by a browser or any other user except yourself." -------> you mean anywhere on my server or in forum root? for example c:\secure

Where is your Sendmail program located? Most Windows servers do not have Sendmail, so your probably out of luck until I write up an SMTP routine.

As for your second question, I do not think the instructions were vague, put is somewhere where nobody can access it via a web browser. Where that is on your system, only you and your host will know that.
Reply With Quote
  #13  
Old 01-05-2006, 08:57 PM
Paul M's Avatar
Paul M Paul M is offline
 
Join Date: Sep 2004
Location: Nottingham, UK
Posts: 23,748
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Interesting .... I slightly modified the existing vb mail system to process it's queue every 15 minutes via a vb cron job - pretty much the same end result, but using the existing mail tables and system. I had considered releasing this at some point but this has probably saved me the effort now.
Reply With Quote
  #14  
Old 01-05-2006, 09:08 PM
tuanluu tuanluu is offline
 
Join Date: Aug 2005
Posts: 185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

okay thanks for quick reply
Reply With Quote
  #15  
Old 01-05-2006, 09:10 PM
Jafo232 Jafo232 is offline
 
Join Date: May 2004
Posts: 1,122
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Paul M
Interesting .... I slightly modified the existing vb mail system to process it's queue every 15 minutes via a vb cron job - pretty much the same end result, but using the existing mail tables and system. I had considered releasing this at some point but this has probably saved me the effort now.
Using the vb cronjob would probably cause the same issues for large userbases as PHP will still hang (and possibly timeout) with large mailings.

I usually prefer to write up a separate tables for my hacks just so they do not muck with user data by accident (faulty uninstalls, etc).
Reply With Quote
  #16  
Old 01-05-2006, 10:43 PM
Jafo232 Jafo232 is offline
 
Join Date: May 2004
Posts: 1,122
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok, I added SMTP support for you Windows users.

I also modified the code so it will be compatible with the HTML hack here .

I also modified the code a bit to use the Vbulletin headers which is needed for the HTML hack and non English sites.

Just uninstall product, and re-install and you are all set.
Reply With Quote
  #17  
Old 01-10-2006, 12:34 AM
BWilliams BWilliams is offline
 
Join Date: Dec 2005
Location: Southern California
Posts: 29
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Getting this error:

Quote:
MySQL said:

#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '$db->query_write("CREATE TABLE IF NOT EXISTS " . TABLE_PREFIX .
Reply With Quote
  #18  
Old 01-10-2006, 04:09 AM
Jafo232 Jafo232 is offline
 
Join Date: May 2004
Posts: 1,122
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I cannot reproduce that error. Perhaps when you unziped the file, it was corrupted?
Reply With Quote
  #19  
Old 01-11-2006, 10:59 AM
kadafi_alive kadafi_alive is offline
 
Join Date: Dec 2004
Posts: 146
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hey, is it possible to incoporate this with the Vb Commbull (newsletter) hack?
Reply With Quote
  #20  
Old 01-11-2006, 04:33 PM
Jafo232 Jafo232 is offline
 
Join Date: May 2004
Posts: 1,122
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by kadafi_alive
Hey, is it possible to incoporate this with the Vb Commbull (newsletter) hack?
I am unsure, do you have a link to this hack?
Reply With Quote
  #21  
Old 01-12-2006, 08:31 AM
groberthall groberthall is offline
 
Join Date: Jan 2005
Posts: 30
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I would also like to see a combination hack.... Commbull by cron......ummm

the lunk is
https://vborg.vbsupport.ru/showthrea...light=commbull
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 03:52 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.11558 seconds
  • Memory Usage 2,302KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (4)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete