8 use Symfony\Component\Mime\Address;
9 use Symfony\Component\Mime\Part\DataPart;
16 protected ?Address $from =
null;
21 protected array $to = [];
26 protected array $cc = [];
31 protected array $bcc = [];
33 protected ?Address $sender =
null;
75 $email->setFrom(self::prepareFrom($from));
84 if (isset(
$params[
'attachments']) && is_array(
$params[
'attachments'])) {
85 foreach (
$params[
'attachments'] as $attachment) {
86 $email->addAttachment($attachment);
101 $prepared_sender = $this->prepareRecipients($sender);
102 $this->sender = !empty($prepared_sender) ? $prepared_sender[0] :
null;
112 if (isset($this->sender)) {
113 return $this->sender;
117 return new Address(
$site->getEmailAddress(),
$site->getDisplayName());
127 public function setFrom(Address $from): self {
149 $this->to = $this->prepareRecipients(
$recipient);
170 $this->cc = $this->prepareRecipients(
$recipient);
191 $this->bcc = $this->prepareRecipients(
$recipient);
313 if ($attachment instanceof DataPart) {
314 $this->attachments[] = $attachment;
319 $this->attachments[] = Attachment::factory($attachment);
320 }
catch (InvalidArgumentException $e) {
321 elgg_log($e->getMessage(), LogLevel::ERROR);
333 return $this->attachments;
347 if ($add_microtime) {
348 $microtime =
'.' . microtime(
true);
354 return "{$urlPath}.entity.{$entity->guid}{$microtime}@{$hostname}";
369 $from =
new Address(
$site->getEmailAddress(),
$site->getDisplayName());
372 $from =
new Address($from->getEmailAddress(), $from->getDisplayName());
375 if (!$from instanceof \
ElggUser && !empty($from->email)) {
376 $from =
new Address($from->email, $from->getDisplayName());
380 $from_display =
elgg_echo(
'notification:method:email:from', [$from->getDisplayName(),
$site->getDisplayName()]);
381 $from =
new Address(
$site->getEmailAddress(), $from_display);
383 }
elseif (is_string($from)) {
384 $from = Address::create($from);
387 if (!$from instanceof Address) {
388 throw new InvalidArgumentException(
'From address is not in a valid format');
403 if (empty($recipients)) {
407 if (!is_array($recipients)) {
408 $recipients = [$recipients];
427 throw new InvalidArgumentException(
'Recipient address is not in a valid format');
if(! $user||! $user->canDelete()) $name
$params
Saves global plugin settings.
return[ 'admin/delete_admin_notices'=>['access'=> 'admin'], 'admin/menu/save'=>['access'=> 'admin'], 'admin/plugins/activate'=>['access'=> 'admin'], 'admin/plugins/activate_all'=>['access'=> 'admin'], 'admin/plugins/deactivate'=>['access'=> 'admin'], 'admin/plugins/deactivate_all'=>['access'=> 'admin'], 'admin/plugins/set_priority'=>['access'=> 'admin'], 'admin/security/security_txt'=>['access'=> 'admin'], 'admin/security/settings'=>['access'=> 'admin'], 'admin/security/regenerate_site_secret'=>['access'=> 'admin'], 'admin/site/cache/invalidate'=>['access'=> 'admin'], 'admin/site/flush_cache'=>['access'=> 'admin'], 'admin/site/icons'=>['access'=> 'admin'], 'admin/site/set_maintenance_mode'=>['access'=> 'admin'], 'admin/site/set_robots'=>['access'=> 'admin'], 'admin/site/theme'=>['access'=> 'admin'], 'admin/site/unlock_upgrade'=>['access'=> 'admin'], 'admin/site/settings'=>['access'=> 'admin'], 'admin/upgrade'=>['access'=> 'admin'], 'admin/upgrade/reset'=>['access'=> 'admin'], 'admin/user/ban'=>['access'=> 'admin'], 'admin/user/bulk/ban'=>['access'=> 'admin'], 'admin/user/bulk/delete'=>['access'=> 'admin'], 'admin/user/bulk/unban'=>['access'=> 'admin'], 'admin/user/bulk/validate'=>['access'=> 'admin'], 'admin/user/change_email'=>['access'=> 'admin'], 'admin/user/delete'=>['access'=> 'admin'], 'admin/user/login_as'=>['access'=> 'admin'], 'admin/user/logout_as'=>[], 'admin/user/makeadmin'=>['access'=> 'admin'], 'admin/user/resetpassword'=>['access'=> 'admin'], 'admin/user/removeadmin'=>['access'=> 'admin'], 'admin/user/unban'=>['access'=> 'admin'], 'admin/user/validate'=>['access'=> 'admin'], 'annotation/delete'=>[], 'avatar/upload'=>[], 'comment/save'=>[], 'diagnostics/download'=>['access'=> 'admin'], 'entity/chooserestoredestination'=>[], 'entity/delete'=>[], 'entity/mute'=>[], 'entity/restore'=>[], 'entity/subscribe'=>[], 'entity/trash'=>[], 'entity/unmute'=>[], 'entity/unsubscribe'=>[], 'login'=>['access'=> 'logged_out'], 'logout'=>[], 'notifications/mute'=>['access'=> 'public'], 'plugins/settings/remove'=>['access'=> 'admin'], 'plugins/settings/save'=>['access'=> 'admin'], 'plugins/usersettings/save'=>[], 'register'=>['access'=> 'logged_out', 'middleware'=>[\Elgg\Router\Middleware\RegistrationAllowedGatekeeper::class,],], 'river/delete'=>[], 'settings/notifications'=>[], 'settings/notifications/subscriptions'=>[], 'user/changepassword'=>['access'=> 'public'], 'user/requestnewpassword'=>['access'=> 'public'], 'useradd'=>['access'=> 'admin'], 'usersettings/save'=>[], 'widgets/add'=>[], 'widgets/delete'=>[], 'widgets/move'=>[], 'widgets/save'=>[],]
$attachments
Outputs attachments.
foreach($categories as $key=> $category) $body
createEntityMessageID(\ElggEntity $entity, bool $add_microtime=false)
Create a Message-ID header string for the given entity.
addAttachment(mixed $attachment)
Add an attachment.
setBody(string $body='')
Sets the email message body.
getSubject()
Returns the subject.
getSender()
Returns sender.
setFrom(Address $from)
Sets sender address.
addHeader(string $name, mixed $value)
Adds/replaces an HTTP/IMF header.
setCc(mixed $recipient)
Sets recipient address in cc.
getAttachments()
Get all attachments.
getFrom()
Returns sender address.
static factory(array $options=[])
Create an email instance form an array of options.
setTo(mixed $recipient)
Sets recipient address.
getHeaders()
Returns headers.
getBody()
Returns email body.
getCc()
Returns recipient address from cc.
setSender(mixed $sender)
Sets email sender.
setHeaders(array $headers=[])
Replaces header bag.
getTo()
Returns recipient address.
setBcc(mixed $recipient)
Sets recipient address in bcc.
getBcc()
Returns recipient address from bcc.
setParams(array $params=[])
Sets additional params.
prepareRecipients(mixed $recipients)
Converts mixed input to an array of Symfony address instances.
static prepareFrom(mixed $from)
Converts mixed input to an instance of \Symfony\Component\Mime\Address.
getParams()
Returns additional params.
setSubject(string $subject='')
Sets email subject.
Exception thrown if an argument is not of the expected type.
elgg_get_site_url()
Get the URL for the current (or specified) site, ending with "/".
if($who_can_change_language==='nobody') elseif($who_can_change_language==='admin_only' &&!elgg_is_admin_logged_in()) $options
$subject
HTML body of an email.
if($item instanceof \ElggEntity) elseif($item instanceof \ElggRiverItem) elseif($item instanceof \ElggRelationship) elseif(is_callable([ $item, 'getType']))
elgg_log($message, $level=\Psr\Log\LogLevel::NOTICE)
Log a message.
_elgg_services()
Get the global service provider.
elgg_extract($key, $array, $default=null, bool $strict=true)
Checks for $array[$key] and returns its value if it exists, else returns $default.
elgg_get_site_entity()
Get the current site entity.
elgg_echo(string $message_key, array $args=[], string $language='')
Elgg language module Functions to manage language and translations.
elgg_substr()
Wrapper function for mb_substr().
if(parse_url(elgg_get_site_url(), PHP_URL_PATH) !=='/') if(file_exists(elgg_get_root_path() . 'robots.txt'))
Set robots.txt.