mardi 24 novembre 2015

Laravel 5.1 Mandrill automated mails ERROR Call to undefined function App\Http\Controllers\Auth\sendRegistermail()

I am trying to send automated mails via Mandrill in my Laravel 5.1 project. It was working but I was setting up my Mandrill Calls in my AuthController now I wanna have a class App\Marketing where all my functions for sending email will be stored. So in my controllers after an actions happens I can just call up the function with 1 line of code, but this line is giving me troubles I think.

my App\Marketing class looks like this now

class Marketing{

private $mandrill;

/**
* Via construct injection
*
*/
public function __construct(Mail $mandrill)
{
    $this->mandrill = $mandrill;
}

public function sendRegistermail()
{
    // In template content you write your dynamic content if you use <mc:edit> tags.
    $template_content = [];
    $message = array(
        'subject' => 'Welkom bij SP*RK! - Jouw accountgegevens',
        'from_email' => 'noreply@spark.com',
        'from_name' => 'SP*RK',
        'to' => array(
            array(
                'email' => $request->input('email'),
                'name' => $request->input('name'),
                'type' => 'to'
            )
        ),
        'merge_vars' => array(
            array(
                'rcpt' => $request->input('email'),
                'vars' => array(
                    array(
                        'name' => 'NAME',
                        'content' => $request->input('name')
                    ),
                    array(
                        'name' => 'EMAIL',
                        'content' => $request->input('email')
                    )
                )
            )
        )
    );

    //email validation
    if (str_contains($request['email'], "@kuleuven.be")) {
        MandrillMail::messages()->sendTemplate('registration-mail', $template_content, $message);
    } else {
        MandrillMail::messages()->sendTemplate('registration-mail-notactive', $template_content, $message);
    }
}

// ----- OR  -------    

/**
* Via method injection
*
*/
public function sendMail(Mail $mandrill, $data)
{
    $mandrill->messages()->sendTemplate($data)
}

// ----- OR  -------

/**
* Via the Facade
*
*/
public function sendMailByFacade($data)
{
    \MandrillMail::messages()->sendTemplate($data);
}
}

This is how I try to call the function after registration in my postRegister function:

sendRegistermail();

return redirect($this->redirectPath());



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire