Seite 1 von 1

PN per PHP senden mit Email-Benachrichtigung

Verfasst: 04.09.2012 22:10
von Nuramon
Huhu ihr.

Ich möchte gerne im PHP-Code automatisch eine PN verschicken, und die Email-Benachrichtigung soll da rausgehen.
Ich habe mir folgenden Code gebastelt, bzw teilweise aus einem MOD übernommen:

Code: Alles auswählen

function send_pn($subject, $message, $to_user, $from_user)
{
    global $user, $db, $phpbb_root_path, $phpEx;

    if (!function_exists('pm_notification'))
    {
        include($phpbb_root_path . 'includes/functions_privmsgs.' . $phpEx);
    }

    $uid            = $bitfield            = $options        = '';
    $allow_bbcode    = $allow_smilies    = $allow_urls   = $img_status   = $flash_status = true;

    generate_text_for_storage($message, $uid, $bitfield, $options, $allow_bbcode, $allow_urls, $allow_smilies);

    // Sender raussuchen
    $sql = 'SELECT *
            FROM ' . USERS_TABLE . "
            WHERE user_id = $from_user";
    $result = $db->sql_query($sql);
    $sender = $db->sql_fetchrow($result);
    $db->sql_freeresult($result);
    
    // To
    
    $pm_data = array(
        'address_list'            => array('u' => array($to_user => 'to')),
        'from_user_id'            => $sender['user_id'],
        'from_user_ip'            => $sender['user_ip'],
        'from_username'            => $sender['username'],
        'enable_sig'            => true,
        'enable_bbcode'            => true,
        'enable_smilies'        => true,
        'enable_urls'            => true,
        'reply_from_root_level'    => 0,
        'reply_from_msg_id'        => 0,
        'icon_id'                => 0,
        'bbcode_bitfield'        => $bitfield,
        'bbcode_uid'            => $uid,
        'message'                => $message,
    );
    $msg_id            = submit_pm('post', $subject, $pm_data);
    $sender_id        = $sender['username'];
    $receiver_id    = $to_user;

    $recipients[$receiver_id] = 'to';
    pm_notification('post', $sender['username'], $recipients, $subject, $pm_data['message'], $msg_id);
} 
Das Problem ist nun, dass keine Email-Benachrichtigung versendet wird. Bei einer manuellen PN geht sie allerdings raus.

Außerdem werden jedes mal 2 Mails versandt, und ich weiß nicht wieso..
$to_user und $from_user sind die User-IDs

Re: PN per PHP senden mit Email-Benachrichtigung

Verfasst: 05.09.2012 11:12
von Nuramon
Ich habe den Fehler jetzt teilweise ausfindig gemacht.

Erstens ist das untere pm_notification überflüssig habe ich gemerkt, weil das im submit_pm auch schon getriggert wird.

Und zweitens habe ich durch debug-echo-Ausgaben in der functions_messenger.php gefunden,
dass er in der

Code: Alles auswählen

    function msg_email() 
bei

Code: Alles auswählen

        if (empty($config['email_enable']))
        {
            echo "config nicht aktiviert";
            return false;
        } 
Auf die Nase.

Die Frage ist nur, warum? :(
Ich hab extra nochmal in der Datenbank geguckt, in der phpbb_config steht email_enable auf 1.

EDIT:
Ich könnte mich selbst erschlagen! *facepalm*
So ein dämlicher Fehler -.-
In meiner selbst geschriebenen Function zum Senden der PN wird die global-Variable $config geladen.
Gleichzeitig habe ich aber auch Config-Variablen für meine Funktion, die ich aus der Datenbank auslese und in einem Array namens $config gespeichert habe.
Hab das array jetzt nach $m_config umbenannt und alles läuft.
Dass ich da nicht selbst drauf gekommen bin... *kopfschüttel*

Wollte das hier bekannt geben, falls jemand ein ähnliches Problem hat

Re: PN per PHP senden mit Email-Benachrichtigung

Verfasst: 29.11.2012 15:50
von Truelli
moin,

ich hätte eine Frage zu dem Code... wird der Benutzer immer per email informiert, oder nur dann, wenn er diese Funktion in seinen persönlichen Einstellungen aktiviert hat?

LG
Truelli

Re: PN per PHP senden mit Email-Benachrichtigung

Verfasst: 10.12.2012 00:12
von gn#36
Da die phpBB eigene Funktion zum Versenden der PN verwendet wird sollte die Email eigentlich nur dann gesendet werden, wenn der User dies laut seinen Einstellungen so wünscht.

Re: PN per PHP senden mit Email-Benachrichtigung

Verfasst: 10.12.2012 11:40
von Walter91
Eventuell wäre das auch was für Dich:
http://henmedia.de/index.php?option=com ... &Itemid=35

Ist einstellbar und geht auch ohne Login in das Forum.