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;
74 $email->setFrom(self::prepareFrom($from));
83 if (isset(
$params[
'attachments']) && is_array(
$params[
'attachments'])) {
84 foreach (
$params[
'attachments'] as $attachment) {
85 $email->addAttachment($attachment);
100 $prepared_sender = $this->prepareRecipients($sender);
101 $this->sender = !empty($prepared_sender) ? $prepared_sender[0] :
null;
111 if (isset($this->sender)) {
112 return $this->sender;
116 return new Address(
$site->getEmailAddress(),
$site->getDisplayName());
126 public function setFrom(Address $from): self {
148 $this->to = $this->prepareRecipients(
$recipient);
169 $this->cc = $this->prepareRecipients(
$recipient);
190 $this->bcc = $this->prepareRecipients(
$recipient);
312 if ($attachment instanceof DataPart) {
313 $this->attachments[] = $attachment;
318 $this->attachments[] = Attachment::factory($attachment);
319 }
catch (InvalidArgumentException $e) {
320 elgg_log($e->getMessage(), LogLevel::ERROR);
332 return $this->attachments;
346 if ($add_microtime) {
347 $microtime =
'.' . microtime(
true);
353 return "{$urlPath}.entity.{$entity->guid}{$microtime}@{$hostname}";
368 $from =
new Address(
$site->getEmailAddress(),
$site->getDisplayName());
371 $from =
new Address($from->getEmailAddress(), $from->getDisplayName());
374 if (!$from instanceof \
ElggUser && !empty($from->email)) {
375 $from =
new Address($from->email, $from->getDisplayName());
379 $from_display =
elgg_echo(
'notification:method:email:from', [$from->getDisplayName(),
$site->getDisplayName()]);
380 $from =
new Address(
$site->getEmailAddress(), $from_display);
382 }
elseif (is_string($from)) {
383 $from = Address::create($from);
386 if (!$from instanceof Address) {
387 throw new InvalidArgumentException(
'From address is not in a valid format');
402 if (empty($recipients)) {
406 if (!is_array($recipients)) {
407 $recipients = [$recipients];
426 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/clear'=>['access'=> 'admin'], 'admin/site/cache/invalidate'=>['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', 'controller'=> \Elgg\Diagnostics\DownloadController::class,], '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.
if(count($css_vars)< 2) $options
elgg_get_site_url()
Get the URL for the current (or specified) site, ending with "/".
$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_echo(string $message_key, array $args=[], string $language='')
Elgg language module Functions to manage language and translations.
elgg_get_site_entity()
Get the current site entity.
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.