If you want to (automatically) send a PM to a user, you can use the Class vB_Datamanager_PM.
This class makes sure that all values are correct, handles quota for the recipients, notification eMails, etc.
Example
PHP Code:
// create the DM to do error checking and insert the new PM
$pmdm =& datamanager_init('PM', $vbulletin, ERRTYPE_ARRAY);
$pmdm->set('fromuserid', 1234);
$pmdm->set('fromusername', 'Welcome-Bot');
$pmdm->set('title', 'Welcom to our Forums');
$pmdm->set('message', "Hello\nI am a Bot and would like to give you a warm welcome :)");
$pmdm->set_recipients('newuser', $botpermissions);
$pmdm->set('dateline', TIMENOW);
If anything goes wrong you can check for errors using
PHP Code:
$pmdm->errors
This is an erray containing the errors.
If everything is OK
PHP Code:
$pmdm->save();
This will send a PM to user newuser telling him
Quote:
Hello.
I am a Bot and would like to give you a warm welcome
The message will appear to be coming from User Welcom-Bot (Userid 1234).
$botpermissions must be the permissions for the sending user, but can just be empty.
If you want to send PMs no matter if the PM box of the recipient is full or not:
PHP Code:
$botpermissions['adminpermissions'] = 2;
If you want, you can set other options as well ($pmdm->set_info(...)):
forward = 1/0 if this is a forwarded PM, Default=0
savecopy = 1/0 to keep a copy if the PM in outbox, Default=0
receipt = 1/0 to request a read-receipt, Default=0
parentpmid = ID of the PM you are responding to (if applicable)
Furthermore you can specify ($pmdm->set(...)):
iconid = ID of the message icon the PM should carry, Default=0
showsignature = 0/1 Whether the signature should be shown or not, Default=0
showsmilie = 0/1 Wheter smilies should be parsed or not, Default=1
For multiple receipients just use user1;user2;useer3.
This How-To is (C) 2005 by KirbyDE and you are not allowed to redistribute it in any way without my explicit consent.
Is anybody aware why when you send a pm from a given user to another user through the use of the sendpm code in this thread and found elsewhere, that no email is sent nor does it show a pop-up that you have a PM waiting.
I don't have that problem, there has to be a setting in your AdminCP or UserCP that is preventing the PM alert popup for you. For me, everything works just fine, as the PM datamanager has no control over whether or not the email is sent or the popup is shown, those are settings in the AdminCP, UserCP, or vBoptions.
Actually, it goes deeper than a pop-up. Even on the "Private Messages" for you under your username in the upper-right hand side of the default templates, it will show "0" even though I will have a new 1. EVEN if someone sends me a PM, it will show 1, when two are really available.
It's as though it thinks I have read it... but I haven't. It does show up as bold though likes its new , the PM area.
I'm at a loss, I am not experiencing any of those behaviors on the hack I wrote to send automatic PMs which i learned from reading this HOWTO. All the stuff in the top right, everywhere seems to work as it should on my installations of vb. Maybe it has to do with the location where you're inserting the datamanager code?
OK I'm a little confused with PMing multiple users.
Suppose I have two textfields, user1 and user2.
All I want to do is combine those two values into the format user1;user2 and input that into the "$pmdm->set_recipients" line so I can send the PM to the two users specified.
i am working on a new hack "Auto PM in members birthday"
i will use it as a cron jop but i have a proplem in recipient i can't make it sends the message to any member
I'm interested in some hints, or pointers to other tutorials, on how I might use this to PM a user when a mod delete's their message. I'd like to include the reason they list in the delete reason blank.
This would be great to use as a "poke" sort of feature like facebook.com has, I'm not sure exactly how to do that at all - but it would be awesome to try ...
I'm interested in some hints, or pointers to other tutorials, on how I might use this to PM a user when a mod delete's their message. I'd like to include the reason they list in the delete reason blank.
Take a look at the code for my "Moderation Auto-PM" hack - this should get you started with sending PM's when a post is deleted.