Thread: Administrative and Maintenance Tools - Auto Bounce Messages Management
View Single Post
  #71  
Old 07-07-2008, 11:39 PM
Hornstar Hornstar is offline
 
Join Date: Jun 2005
Location: Australia
Posts: 2,469
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

When I test my connection I got this message: 3 POP3 server greeting was not found

What does that mean?

Edit, changed pop host to an ip instead and that worked. Looking forward to the results of this. thanks.


Quote:
Originally Posted by AngelBlue View Post
I've added some code so that bouncing users now get:
* Popup PM notification set to YES
* Receive admin emails set to NO
* Recieve email PM notification set to NO
* Thread subscription mode set to "no email" (if it was previously set to instant, daily or weekly email)
* All their thread and forum subscriptions set to 'no email'.
* A PM to explain the above.

To do this, I replaced the code in your "Move Users To Bounce Usergroup" plugin with this:

Code:
$bounces = $vbulletin->db->query_read("
    SELECT messageid, toemail
    FROM " . TABLE_PREFIX . "sent_email
    WHERE bounced = 1
");

if ($vbulletin->db->num_rows($bounces) > 0)
{
    $toemails = array();
    $messageids = array();
    
    while ($bounce = $vbulletin->db->fetch_array($bounces))
    {
        $toemails[] = "'" . $bounce['toemail'] . "'";
        $messageids[] = $bounce['messageid'];
    }
    $toemails = array_unique($toemails);

    // start added code here... define data for PM data manager

    $tonames = array();
    $touids = array();
    $fromuser = fetch_userinfo(1);
    $message = "We tried to deliver an email to you, but unfortunately, it bounced. To prevent us sending more mail to you while your email provider is not accepting it, we have deactivated all the email-related features of your account. To reactivate your account, go to your UserCP, and update your email address. You will then get a confirmation email. Clicking on the link in this confirmation email should re-enable your account, at which point you will need to visit your UserCP options page to re-enable the email notifications you wish to use.";

    $affected = $vbulletin->db->query_read("SELECT userid,username FROM " . TABLE_PREFIX . "user WHERE email IN (" . implode(', ', $toemails) . ")");
    while ($affected = $vbulletin->db->fetch_array($affected)) {
        $tonames[] = $affected['username'];
        $touids[] = $affected['userid'];
    }
    $tonames = array_unique($tonames);
    $pmdm =& datamanager_init('PM', $vbulletin, ERRTYPE_SILENT);
    $pmdm->set('fromuserid', '1');
    $pmdm->set('fromusername', 'EmailBot');
    $pmdm->set_info('reciept', false);
    $pmdm->set_info('savecopy', false);
    $pmdm->set('title', 'Email Broken!');
    $pmdm->set('message', $message);
    $pmdm->set_recipients(implode(";",$tonames), $fromuser['permissions']);
    $pmdm->set('dateline', TIMENOW);
    $pmdm->save();

    
    
    // this is stock mod code to move them to the different usergroup.
    $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET usergroupid = " .  $vbulletin->options['bm_usergroup'] . ", membergroupids = '', displaygroupid = 0 WHERE usergroupid NOT IN (" . $vbulletin->options['bm_excludeusergroups'] . ") AND email IN (" . implode(', ', $toemails) . ")");

    // and stock code to delete their message tracking info...
    $vbulletin->db->query_write("DELETE FROM " . TABLE_PREFIX . "sent_email WHERE messageid IN (" . implode(', ', $messageids) . ")");

    // continue custom code to update their user options...
    // stop them generating any more email!

    // pm popup = YES
    $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET pmpopup = 1 WHERE email IN (" . implode(', ', $toemails) . ")");
    
    // send notification email on PM - NO
    $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET options = (options - 4096) WHERE (options & 4096) AND email IN (" . implode(', ', $toemails) . ")");

    // admin email OFF
    $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET options = (options - 16) WHERE (options & 16) AND email IN (" . implode(', ', $toemails) . ")");

    // set autosubscribe = without email WHERE autosubscribe_with_email
    $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "user SET autosubscribe = 1 WHERE (autosubscribe > 1) AND email IN (" . implode(', ', $toemails) . ")");

    // set emailupdates = 0 for their thread subscriptions
    $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "subscribethread SET emailupdate = 0 WHERE (emailupdate > 0) AND userid IN (" . implode(', ', $touids) . ")");

    // set emailupdates = 0 for their forum subscriptions
    $vbulletin->db->query_write("UPDATE " . TABLE_PREFIX . "subscribeforum SET emailupdate = 0 WHERE (emailupdate > 0) AND userid IN (" . implode(', ', $touids) . ")");

    // finish
    unset($toemails, $messageids);
}

$vbulletin->db->free_result($bounces);
Cool! Any chance of this getting packaged up. I would really love to get this installed on my board. It is now a requirement of AOL that you remove any permanently bounced emails from your mailing list or you risk getting blacklisted.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01058 seconds
  • Memory Usage 1,800KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete