Version: 5.1a, by grandeur_69
Developer Last Online: Apr 2014
Category: Administrative and Maintenance Tools -
Version: 3.8.4
Rating:
Released: 12-16-2009
Last Update: 02-03-2011
Installs: 208
DB Changes Uses Plugins Template Edits
Re-useable Code Additional Files Translations
No support by the author.
Community Bulletin:
This mod grabs all the latest information in your forum (posts, threads, events, birthdays, etc) and puts them into a newsletter to be sent to all your members that subscribe.
This mod has been around a long time and gone through many versions. It has been a paid version for a number of years with great success, but it's time to pass on the reigns.
[edit Feb 03, 2011]
Attempted fix for sending to users that are part of multiple user groups
[installation]
- upload some files
- upload the product.xml
- make 1 mod to the usercp options template
- FULL DETAILS in the README.txt
[note] many people ask why all the images, etc don't show up in the HTML version of what is in your forum. This is because most mail clients strip out the CSS and vbulletin is 99% CSS. I have created an HTML version that is nice and clean, but is forum independent. If you know what you are doing, you can edit this HTML file and build your own newsletter.
I have over 2,30,000 members. I tried using this mod but the send queue fails / stops abruptly and then I have to hit the back button. Also it conflicts with vbseo in a way and takes jargon code from footer. We have a nehlam dedicated server.
I'm willing to pay but can someone tell me how
a.) I can send an email to all my members without having to watch the queue page update every x seconds and then stop?
b.) Reduce server loads and ensure the bounced emails are not sent again.
I get the following error when I try to send the newsletter:
Code:
Warning: Missing argument 1 for vB_Database::query_write(), called in [path]/acp/commbull_functions.php on line 366 and defined in [path]/includes/class_core.php on line 438
Database error in vBulletin 4.1.4:
Invalid SQL:
;
MySQL Error : Query was empty
Error Number : 1065
Request Date : Friday, July 1st 2011 @ 02:27:27 PM
Error Date : Friday, July 1st 2011 @ 02:27:27 PM
Script : http://www.adsenseexperts.com/acp/commbull.php?do=send
Referrer : http://www.adsenseexperts.com/acp/commbull.php
IP Address : xxx
Username : me
Classname : vB_Database
MySQL Version : 5.0.51a-24+lenny5
I run 4.14, this is a fresh install (with modifications from the 4.0 Version Thread) and I have selected usergroups and forums for the newsletter.
I can see the newsletter preview but when I click send I get the above error.
I had a problem with this mod where sometimes it wouldn't send out emails or it sent out several to the same user, duplicated emails.
In my case I did two things to solve this:
1 In Vbulletin>admincp>Options>settings>Email Options
Use Mailqueue System set to "Yes, with locking"
This prevents duplicated newsletter from going out and also helps the smooth distribution of those newsletters.
2 SMTP Email set this to yes!
Now fill in the settings for your smtp server and hit save.
Since doing this I'm able to send out newsletters without problems to over 5,000 members.
Hope this helps.
if ($num > $max) { print "Processing first $max of $num messages\n"; $num = $max; }
print "Processed messages will be deleted from mailbox\n";
for ($x=1; $x <= $num; $x++) { set_time_limit(60); flush(); print "processing $x of $num messages\n"; $processed = processBounce($link,$x); // delete it anyway - we've seen it, tried to process it, no need to do it again imap_mail_move($link, "$x:$x", "[Google Mail]/Trash"); flush(); } flush(); print "\nClosing mailbox, and purging messages\n\n";
function processBounce($link,$num) { global $forum_dbs, $conn; $headerinfo = imap_headerinfo($link,$num); $matched = false;
$subject = strtolower($headerinfo->subject);
if (strpos($subject, 'undelivered') !== false || strpos($subject, 'returned') !== false) { $email_address = ''; $body = imap_body($link,$num); $pos = strpos($body, 'Undelivered Message'); if ($pos) { $body = substr($body, $pos); preg_match ("/To: (.*)/i", $body, $match); if (is_array($match) && isset($match[1])) $email_address = trim($match[1]); } if ($email_address) { print "procesing email '$email_address'\n"; // loop through the dbs to find the user and turn off emails to that address foreach ($forum_dbs as $db_name) { if (mysql_select_db($db_name, $conn)) { $query = "SELECT * FROM user WHERE email = '".mysql_real_escape_string($email_address) ."'"; $result = mysql_query($query, $conn); if ($result && $user = mysql_fetch_assoc($result)) { echo "cleaning user '$email_address' from $db_name\n"; $matched = true; $user_id = $user['user_id']; // no weekly newsletter mysql_query("UPDATE user SET receivebulletin = 0 WHERE userid = $user_id", $conn); // no longer receive admin emails mysql_query("UPDATE user SET options = options - 16 WHERE options & 16 AND userid = $user_id", $conn); } } } } } return $matched; }
?>
Couple notes:
- everything gets bounced to our Google Apps account, so your setup may be slightly different
- we have multiple forums that run to the same email address, so we pass an array of DB's
I've installed this but when trying to access the settings etc. receive the following error:
Code:
Invalid SQL:
SELECT administrator.*,
FROM user AS user
LEFT JOIN userfield AS userfield ON (user.userid = userfield.userid)
LEFT JOIN usertextfield AS usertextfield ON (usertextfield.userid = user.userid) LEFT JOIN administrator AS administrator ON (administrator.userid = user.userid) LEFT JOIN language AS language ON (language.languageid = IF(user.languageid = 0, 1, user.languageid))
LEFT JOIN usergroup AS mgcugp ON (user.usergroupid=mgcugp.usergroupid)
WHERE user.userid = 3;
MySQL Error : Unknown column 'language.phrasegroup_commbull' in 'field list'
Error Number : 1054
Also, I'm not sure if I have all the right files as I receive an error when I try to open the zip file.
the error doesn't even make sense. I don't see phrasegroup_commbull in the search query for it to display that error. The product XML file is the one that would include these changes to the database.