Class EmailComponent

EmailComponent

This component is used for handling Internet Message Format based based on the standard outlined in http://www.rfc-editor.org/rfc/rfc2822.txt

CakeObject
Extended by Component
Extended by EmailComponent
Package: Cake\Controller\Component
Link: https://book.cakephp.org/2.0/en/core-libraries/components/email.html
Link: https://book.cakephp.org/2.0/en/core-utility-libraries/email.html
Deprecated: 3.0.0 Will be removed in 3.0. Use Network/CakeEmail instead
Copyright: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
License: MIT License
Location: Cake/Controller/Component/EmailComponent.php

Properties summary

  • $_controller protected
    Controller reference
  • string
    List of additional headers
  • $attachments public
    array
    List of files that should be attached to the email.
  • $bcc public
    array
    Blind Carbon Copy
  • $cc public
    array
    Carbon Copy
  • $charset public
    string
    charset the email is sent in
  • $date public
    string

    The date to put in the Date: header. This should be a date conforming with the RFC2822 standard. Leave null, to have today's date generated.

  • $delivery public
    string
    What method should the email be sent by
  • $filePaths public
    array
    The list of paths to search if an attachment isn't absolute
  • $from public
    string
    The mail which the email is sent from
  • $headers public
    array

    Associative array of a user defined headers Keys will be prefixed 'X-' as per RFC2822 Section 4.7.5

  • $htmlMessage public
    string
    Contains the rendered HTML message if one was sent.
  • $layout public
    string
    Layout for the View
  • $lineFeed public
    string

    Line feed character(s) to be used when sending using mail() function By default PHP_EOL is used. RFC2822 requires it to be CRLF but some Unix mail transfer agents replace LF by CRLF automatically (which leads to doubling CR if CRLF is used).

  • $messageId public
    mixed

    Whether to generate a Message-ID header for the e-mail. True to generate a Message-ID, False to let it be handled by sendmail (or similar) or a string to completely override the Message-ID.

  • $readReceipt public
    string
    The read receipt email
  • $replyTo public
    string
    The email the recipient will reply to
  • $return public
    string

    The mail that will be used in case of any errors like - Remote mailserver down - Remote user has exceeded his quota - Unknown user

  • $sendAs public
    string
    What format should the email be sent in
  • $smtpOptions public
    array
    List of options to use for smtp mail method
  • $subject public
    string
    The subject of the email
  • $template public
    string
    Template for the view
  • $textMessage public
    string
    Contains the rendered plain text message if one was sent.
  • $to public
    string
    Recipient of the email
  • $xMailer public
    string
    What mailer should EmailComponent identify itself as

Inherited Properties

Method Summary

  • __construct() public
    Constructor
  • _findFiles() protected
    Find the specified attachment in the list of file paths
  • _formatAddresses() protected
    Format addresses to be an array with email as key and alias as value
  • Format the attach array
  • _strip() protected

    Remove certain elements (such as bcc:, to:, %0a) from given value. Helps prevent header injection / manipulation on user content.

  • initialize() public
    Initialize component
  • reset() public
    Reset all EmailComponent internal variables to be able to send out a new email.
  • send() public
    Send an email using the specified content, template and layout

Method Detail

__construct()source public

__construct( ComponentCollection $collection , array $settings array() )

Constructor

Parameters

ComponentCollection $collection
A ComponentCollection this component can use to lazy load its components
array $settings optional array()
Array of configuration settings.

Overrides

Component::__construct()

_findFiles()source protected

_findFiles( string $attachment )

Find the specified attachment in the list of file paths

Parameters

string $attachment
Attachment file name to find

Returns

string|null
Path to located file

_formatAddresses()source protected

_formatAddresses( array $addresses )

Format addresses to be an array with email as key and alias as value

Parameters

array $addresses
Address to format.

Returns

array

_formatAttachFiles()source protected

_formatAttachFiles( )

Format the attach array

Returns

array

_strip()source protected

_strip( string $value , boolean $message false )

Remove certain elements (such as bcc:, to:, %0a) from given value. Helps prevent header injection / manipulation on user content.

Parameters

string $value
Value to strip
boolean $message optional false
Set to true to indicate main message content

Returns

string
Stripped value

initialize()source public

initialize( Controller $controller )

Initialize component

Parameters

Controller $controller
Instantiating controller

Overrides

Component::initialize()

reset()source public

reset( )

Reset all EmailComponent internal variables to be able to send out a new email.

send()source public

send( string|array $content null , string $template null , string $layout null )

Send an email using the specified content, template and layout

Parameters

string|array $content optional null

Either an array of text lines, or a string with contents If you are rendering a template this variable will be sent to the templates as $content

string $template optional null
Template to use when sending email
string $layout optional null
Layout to use to enclose email body

Returns

boolean
Success

Methods inherited from Component

__get()source public

__get( string $name )

Magic method for lazy loading $components.

Parameters

string $name
Name of component to get.

Returns

mixed
A Component object or null.

beforeRedirect()source public

beforeRedirect( Controller $controller , string|array $url , integer $status null , boolean $exit true )

Called before Controller::redirect(). Allows you to replace the URL that will be redirected to with a new URL. The return of this method can either be an array or a string.

If the return is an array and contains a 'url' key. You may also supply the following:

  • status The status code for the redirect
  • exit Whether or not the redirect should exit.

If your response is a string or an array that does not contain a 'url' key it will be used as the new URL to redirect to.

Parameters

Controller $controller
Controller with components to beforeRedirect
string|array $url
Either the string or URL array that is being redirected to.
integer $status optional null
The status code of the redirect
boolean $exit optional true
Will the script exit.

Returns

array|null
Either an array or null.

Link

https://book.cakephp.org/2.0/en/controllers/components.html#Component::beforeRedirect

beforeRender()source public

beforeRender( Controller $controller )

Called before the Controller::beforeRender(), and before the view class is loaded, and before Controller::render()

Parameters

Controller $controller
Controller with components to beforeRender

Link

https://book.cakephp.org/2.0/en/controllers/components.html#Component::beforeRender

shutdown()source public

shutdown( Controller $controller )

Called after Controller::render() and before the output is printed to the browser.

Parameters

Controller $controller
Controller with components to shutdown

Link

https://book.cakephp.org/2.0/en/controllers/components.html#Component::shutdown

startup()source public

startup( Controller $controller )

Called after the Controller::beforeFilter() and before the controller action

Parameters

Controller $controller
Controller with components to startup

Link

https://book.cakephp.org/2.0/en/controllers/components.html#Component::startup

Methods inherited from CakeObject

_mergeVars()source protected

_mergeVars( array $properties , string $class , boolean $normalize true )

Merges this objects $property with the property in $class' definition. This classes value for the property will be merged on top of $class'

This provides some of the DRY magic CakePHP provides. If you want to shut it off, redefine this method as an empty function.

Parameters

array $properties
The name of the properties to merge.
string $class
The class to merge the property with.
boolean $normalize optional true
Set to true to run the properties through Hash::normalize() before merging.

_set()source protected

_set( array $properties array() )

Allows setting of multiple properties of the object in a single line of code. Will only set properties that are part of a class declaration.

Parameters

array $properties optional array()
An associative array containing properties and corresponding values.

_stop()source protected

_stop( integer|string $status 0 )

Stop execution of the current script. Wraps exit() making testing easier.

Parameters

integer|string $status optional 0
see http://php.net/exit for values

dispatchMethod()source public

dispatchMethod( string $method , array $params array() )

Calls a method on this object with the given parameters. Provides an OO wrapper for call_user_func_array

Parameters

string $method
Name of the method to call
array $params optional array()
Parameter list to use when calling $method

Returns

mixed
Returns the result of the method call

log()source public

log( string $msg , integer $type LOG_ERR , null|string|array $scope null )

Convenience method to write a message to CakeLog. See CakeLog::write() for more information on writing to logs.

Parameters

string $msg
Log message
integer $type optional LOG_ERR
Error type constant. Defined in app/Config/core.php.
null|string|array $scope optional null

The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.

Returns

boolean
Success of log write

requestAction()source public

requestAction( string|array $url , array $extra array() )

Calls a controller's method from any location. Can be used to connect controllers together or tie plugins into a main application. requestAction can be used to return rendered views or fetch the return value from controller actions.

Under the hood this method uses Router::reverse() to convert the $url parameter into a string URL. You should use URL formats that are compatible with Router::reverse()

Passing POST and GET data

POST and GET data can be simulated in requestAction. Use $extra['url'] for GET data. The $extra['data'] parameter allows POST data simulation.

Parameters

string|array $url

String or array-based URL. Unlike other URL arrays in CakePHP, this URL will not automatically handle passed and named arguments in the $url parameter.

array $extra optional array()

if array includes the key "return" it sets the AutoRender to true. Can also be used to submit GET/POST data, and named/passed arguments.

Returns

mixed

Boolean true or false on success/failure, or contents of rendered action if 'return' is set in $extra.


toString()source public

toString( )

CakeObject-to-string conversion. Each class can override this method as necessary.

Returns

string
The name of this class

Properties detail

$_controllersource

protected Controller

Controller reference

null

$additionalParamssource

public string

List of additional headers

These will NOT be used if you are using safemode and mail()

null

$attachmentssource

public array

List of files that should be attached to the email.

Can be both absolute and relative paths

array()

$bccsource

public array

Blind Carbon Copy

List of email's that should receive a copy of the email. The Recipient WILL NOT be able to see this list

array()

$ccsource

public array

Carbon Copy

List of email's that should receive a copy of the email. The Recipient WILL be able to see this list

array()

$charsetsource

public string

charset the email is sent in

'utf-8'

$datesource

public string

The date to put in the Date: header. This should be a date conforming with the RFC2822 standard. Leave null, to have today's date generated.

null

$deliverysource

public string

What method should the email be sent by

Supported methods: - mail - smtp - debug

'mail'

$filePathssource

public array

The list of paths to search if an attachment isn't absolute

array()

$fromsource

public string

The mail which the email is sent from

null

$headerssource

public array

Associative array of a user defined headers Keys will be prefixed 'X-' as per RFC2822 Section 4.7.5

array()

$htmlMessagesource

public string

Contains the rendered HTML message if one was sent.

null

$layoutsource

public string

Layout for the View

'default'

$lineFeedsource

public string

Line feed character(s) to be used when sending using mail() function By default PHP_EOL is used. RFC2822 requires it to be CRLF but some Unix mail transfer agents replace LF by CRLF automatically (which leads to doubling CR if CRLF is used).

PHP_EOL

$messageIdsource

public mixed

Whether to generate a Message-ID header for the e-mail. True to generate a Message-ID, False to let it be handled by sendmail (or similar) or a string to completely override the Message-ID.

If you are sending Email from a shell, be sure to set this value. As you could encounter delivery issues if you do not.

true

$readReceiptsource

public string

The read receipt email

null

$replyTosource

public string

The email the recipient will reply to

null

$returnsource

public string

The mail that will be used in case of any errors like - Remote mailserver down - Remote user has exceeded his quota - Unknown user

null

$sendAssource

public string

What format should the email be sent in

Supported formats: - text - html - both

'text'

$smtpOptionssource

public array

List of options to use for smtp mail method

Options is: - port - host - timeout - username - password - client

array()

$subjectsource

public string

The subject of the email

null

$templatesource

public string

Template for the view

null

$textMessagesource

public string

Contains the rendered plain text message if one was sent.

null

$tosource

public string

Recipient of the email

null

$xMailersource

public string

What mailer should EmailComponent identify itself as

'CakePHP Email Component'

© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.10/class-EmailComponent.html