Browse Source

Enable addon using emailer hooks to skip default call to mail()

tags/2019.06^2
Hypolite Petovan 5 months ago
parent
commit
4e207ef786
2 changed files with 15 additions and 2 deletions
  1. 2
    0
      doc/Addons.md
  2. 13
    2
      src/Util/Emailer.php

+ 2
- 0
doc/Addons.md View File

@@ -358,6 +358,7 @@ Called from `Emailer::send()` before building the mime message.
- **htmlVersion**: html version of the message
- **textVersion**: text only version of the message
- **additionalMailHeader**: additions to the smtp mail header
- **sent**: default false, if set to true in the hook, the default mailer will be skipped.

### emailer_send
Called before calling PHP's `mail()`.
@@ -367,6 +368,7 @@ Called before calling PHP's `mail()`.
- **subject**
- **body**
- **headers**
- **sent**: default false, if set to true in the hook, the default mailer will be skipped.

### load_config
Called during `App` initialization to allow addons to load their own configuration file(s) with `App::loadConfigFile()`.

+ 13
- 2
src/Util/Emailer.php View File

@@ -32,10 +32,16 @@ class Emailer
* @return bool
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
public static function send($params)
public static function send(array $params)
{
$params['sent'] = false;

Hook::callAll('emailer_send_prepare', $params);

if ($params['sent']) {
return true;
}

$email_textonly = false;
if (!empty($params['uid'])) {
$email_textonly = PConfig::get($params['uid'], "system", "email_textonly");
@@ -87,11 +93,16 @@ class Emailer
'subject' => $messageSubject,
'body' => $multipartMessageBody,
'headers' => $messageHeader,
'parameters' => $sendmail_params
'parameters' => $sendmail_params,
'sent' => false,
];

Hook::callAll("emailer_send", $hookdata);

if ($hookdata['sent']) {
return true;
}

$res = mail(
$hookdata['to'],
$hookdata['subject'],

Loading…
Cancel
Save