Actions

Difference between revisions of "BeforeEmail"

From LimeSurvey Manual

m ('errorsavingresults' related to survey)
(Add mailer usage sample)
 
Line 34: Line 34:
 
* message : If send is true and action return a message : the message to be shown
 
* message : If send is true and action return a message : the message to be shown
 
* error : If set and "send" is true, log the error as failed email attempt.
 
* error : If set and "send" is true, log the error as failed email attempt.
 +
 +
'''Usage of mailer'''
 +
 +
The plugin offer as input the mailer object, then you can access and set mailer variables. For example to get the Body before you can use rawBody variables. Since mailer have a public function to do own replacement, you can update the raw body and do the replacement after.
 +
 +
A sample code can be :
 +
 +
<syntaxhighlight lang="php">
 +
    $mailer = $this->getEvent()->get(mailer);
 +
    $rawBody = $mailer->rawBody;
 +
    // Clean up code
 +
    $oPurifier = new \CHtmlPurifier();
 +
    $rawBody = $oPurifier->purify($rawBody);
 +
    $body = $mailer->doReplacements($rawBody);
 +
    $this->getEvent()->get('body',$body);
 +
</syntaxhighlight>
 +
 +
Check '''mailSenderToFrom''' core plugin for another usage of mailer to set the sender, the Response-To and the From-To.
  
 
'''Example'''
 
'''Example'''

Latest revision as of 10:02, 11 June 2019

Notice.png
Hint: This features is available starting in version 4.0.0


Important.png
This feature is currently implemented in beta version of LimeSurvey.


Usage

This event can be used each time an email not related to a survey is send.

Input

The event receives the following information:

  • mailer : The mailer object
  • type : Email type : 'passwordreminderadminuser', 'addadminuser', 'mailsendusergroup'. default is unknow, and deprecated usage of function is 'deprecated'
  • subject : Email subject
  • to : Recipient(s) with format [email,name]
  • body : Email body content
  • from : Sender (From)
  • bounce : The Sender (Return-Path)
  • survey : null
  • model : null
  • updateDisable : array

Possible output

The following information can be set in the event:

  • updateDisable : if plugin use mailer to update other parts, allow to disable update by default action
  • subject : Email subject
  • body : Email body content
  • to : Recipient(s) in [[email,name]] format
  • from : From email and name
  • bounce : Return-Path
  • send : If true Limesurvey will send the email. Setting this to false will cause Limesurvey to assume the mail has been sent by the plugin.
  • message : If send is true and action return a message : the message to be shown
  • error : If set and "send" is true, log the error as failed email attempt.

Usage of mailer

The plugin offer as input the mailer object, then you can access and set mailer variables. For example to get the Body before you can use rawBody variables. Since mailer have a public function to do own replacement, you can update the raw body and do the replacement after.

A sample code can be :

    $mailer = $this->getEvent()->get(mailer);
    $rawBody = $mailer->rawBody;
    // Clean up code
    $oPurifier = new \CHtmlPurifier();
    $rawBody = $oPurifier->purify($rawBody);
    $body = $mailer->doReplacements($rawBody);
    $this->getEvent()->get('body',$body);

Check mailSenderToFrom core plugin for another usage of mailer to set the sender, the Response-To and the From-To.

Example