Class CakeEmail
CakePHP email class.
This class is used for handling Internet Message Format based based on the standard outlined in http://www.rfc-editor.org/rfc/rfc2822.txt
Method Detail
__constructsource public
__construct( array|string $config null )
Constructor
Parameters
- array|string
$config
optional null - Array of configs, or string to load configs from email.php
_addEmailsource protected
_addEmail( string $varName , string|array $email , string $name )
Add email
Parameters
- string
$varName
- Property name
- string|array
$email
- String with email, Array with email as key, name as value or email as value (without name)
- string
$name
- Name
Returns
self
self
Throws
SocketException
SocketException
_applyConfigsource protected
_applyConfig( array $config )
Apply the config to an instance
Parameters
- array
$config
- Configuration options.
Throws
ConfigureException
When configuration file cannot be found, or is missing the named config.
_attachFilessource protected
_attachFiles( string $boundary null )
Attach non-embedded files by adding file contents inside boundaries.
Parameters
- string
$boundary
optional null - Boundary to use. If null, will default to $this->_boundary
Returns
array
An array of lines to add to the message
_attachInlineFilessource protected
_attachInlineFiles( string $boundary null )
Attach inline/embedded files to the message.
Parameters
- string
$boundary
optional null - Boundary to use. If null, will default to $this->_boundary
Returns
array
An array of lines to add to the message
_createBoundarysource protected
_createBoundary( )
Create unique boundary identifier
_encodesource protected
_encode( string $text )
Encode the specified string using the current charset
Parameters
- string
$text
- String to encode
Returns
string
Encoded string
_encodeStringsource protected
_encodeString( string $text , string $charset )
Translates a string for one charset to another if the App.encoding value differs and the mb_convert_encoding function exists
Parameters
- string
$text
- The text to be converted
- string
$charset
- the target encoding
Returns
string
string
_formatAddress( array $address )
Format addresses
If the address contains non alphanumeric/whitespace characters, it will be quoted as characters like :
and ,
are known to cause issues in address header fields.
Parameters
- array
$address
- Addresses to format.
Returns
array
array
_getContentTransferEncodingsource protected
_getContentTransferEncoding( )
Return the Content-Transfer Encoding value based on the set charset
Returns
string
string
_getContentTypeCharsetsource protected
_getContentTypeCharset( )
Return charset value for Content-Type.
Checks fallback/compatibility types which include workarounds for legacy japanese character sets.
Returns
string
string
_getTypessource protected
_getTypes( )
Gets the text body types that are in this email message
Returns
array
Array of types. Valid types are 'text' and 'html'
_readFilesource protected
_readFile( string $path )
Read the file contents and return a base64 version of the file contents.
Parameters
- string
$path
- The absolute path to the file to read.
Returns
string
File contents in base64 encoding
_rendersource protected
_render( array $content )
Render the body of the email.
Parameters
- array
$content
- Content to render
Returns
array
Email body ready to be sent
_renderTemplatessource protected
_renderTemplates( string $content )
Build and set all the view properties needed to render the templated emails. If there is no template set, the $content will be returned in a hash of the text content types for the email.
Parameters
- string
$content
- The content passed in from send() in most cases.
Returns
array
The rendered content with html and text keys.
_setEmailsource protected
_setEmail( string $varName , string|array $email , string $name )
Set email
Parameters
- string
$varName
- Property name
- string|array
$email
- String with email, Array with email as key, name as value or email as value (without name)
- string
$name
- Name
Returns
self
self
_setEmailSinglesource protected
_setEmailSingle( string $varName , string|array $email , string $name , string $throwMessage )
Set only 1 email
Parameters
- string
$varName
- Property name
- string|array
$email
- String with email, Array with email as key, name as value or email as value (without name)
- string
$name
- Name
- string
$throwMessage
- Exception message
Returns
self
self
Throws
SocketException
SocketException
_validateEmailsource protected
_validateEmail( string $email )
Validate email address
Parameters
- string
$email
- Email
Throws
SocketException
If email address does not validate
_wrapsource protected
_wrap( string $message , integer $wrapLength CakeEmail::LINE_LENGTH_MUST )
Wrap the message to follow the RFC 2822 - 2.1.1
Parameters
- string
$message
- Message to wrap
- integer
$wrapLength
optional CakeEmail::LINE_LENGTH_MUST
- The line length
Returns
array
Wrapped message
addAttachmentssource public
addAttachments( string|array $attachments )
Add attachments
Parameters
- string|array
$attachments
- String with the filename or array with filenames
Returns
self
self
Throws
SocketException
SocketException
See
CakeEmail::attachments()
addBccsource public
addBcc( string|array $email , string $name null )
Add Bcc
Parameters
- string|array
$email
- Null to get, String with email, Array with email as key, name as value or email as value (without name)
- string
$name
optional null - Name
Returns
self
self
addCc( string|array $email , string $name null )
Add Cc
Parameters
- string|array
$email
- Null to get, String with email, Array with email as key, name as value or email as value (without name)
- string
$name
optional null - Name
Returns
self
self
addHeaders( array $headers )
Add header for the message
Parameters
- array
$headers
- Headers to set.
Returns
self
self
Throws
SocketException
SocketException
addTo( string|array $email , string $name null )
Add To
Parameters
- string|array
$email
- Null to get, String with email, Array with email as key, name as value or email as value (without name)
- string
$name
optional null - Name
Returns
self
self
attachmentssource public
attachments( string|array $attachments null )
Add attachments to the email message
Attachments can be defined in a few forms depending on how much control you need:
Attach a single file:
$email->attachments('path/to/file');
Attach a file with a different filename:
$email->attachments(array('custom_name.txt' => 'path/to/file.txt'));
Attach a file and specify additional properties:
$email->attachments(array('custom_name.png' => array(
'file' => 'path/to/file',
'mimetype' => 'image/png',
'contentId' => 'abc123',
'contentDisposition' => false
));
Attach a file from string and specify additional properties:
$email->attachments(array('custom_name.png' => array(
'data' => file_get_contents('path/to/file'),
'mimetype' => 'image/png'
));
The contentId
key allows you to specify an inline attachment. In your email text, you can use <img src="cid:abc123" />
to display the image inline.
The contentDisposition
key allows you to disable the Content-Disposition
header, this can improve attachment compatibility with outlook email clients.
Parameters
- string|array
$attachments
optional null - String with the filename or array with filenames
Returns
array|self
Either the array of attachments when getting or $this when setting.
Throws
SocketException
SocketException
bcc( string|array $email null , string $name null )
Bcc
Parameters
- string|array
$email
optional null - Null to get, String with email, Array with email as key, name as value or email as value (without name)
- string
$name
optional null - Name
Returns
array|self
array|self
cc( string|array $email null , string $name null )
Cc
Parameters
- string|array
$email
optional null - Null to get, String with email, Array with email as key, name as value or email as value (without name)
- string
$name
optional null - Name
Returns
array|self
array|self
charsetsource public
charset( string $charset null )
Charset setter/getter
Parameters
- string
$charset
optional null - Character set.
Returns
string
this->charset
configsource public
config( string|array $config null )
Configuration to use when send email
Usage
Load configuration from app/Config/email.php
:
$email->config('default');
Merge an array of configuration into the instance:
$email->config(array('to' => '[email protected]'));
Parameters
- string|array
$config
optional null - String with configuration name (from email.php), array with config or null to return current config
Returns
string|array|self
string|array|self
deliversource public static
deliver( string|array $to null , string $subject null , string|array $message null , string|array $transportConfig 'fast' , boolean $send true )
Static method to fast create an instance of CakeEmail
Parameters
- string|array
$to
optional null - Address to send (see CakeEmail::to()). If null, will try to use 'to' from transport config
- string
$subject
optional null - String of subject or null to use 'subject' from transport config
- string|array
$message
optional null - String with message or array with variables to be used in render
- string|array
$transportConfig
optional 'fast' - String to use config from EmailConfig or array with configs
- boolean
$send
optional true - Send the email or just return the instance pre-configured
Returns
self
Instance of CakeEmail
Throws
SocketException
SocketException
domainsource public
domain( string $domain null )
Domain as top level (the part after @)
Parameters
- string
$domain
optional null - Manually set the domain for CLI mailing
Returns
string|self
string|self
emailFormat( string $format null )
Email format
Parameters
- string
$format
optional null - Formatting string.
Returns
string|self
string|self
Throws
SocketException
SocketException
emailPatternsource public
emailPattern( string|boolean|null $regex false )
EmailPattern setter/getter
Parameters
- string|boolean|null
$regex
optional false - The pattern to use for email address validation, null to unset the pattern and make use of filter_var() instead, false or nothing to return the current value
Returns
string|self
string|self
from( string|array $email null , string $name null )
From
Parameters
- string|array
$email
optional null - Null to get, String with email, Array with email as key, name as value or email as value (without name)
- string
$name
optional null - Name
Returns
array|CakeEmail
array|CakeEmail
Throws
SocketException
SocketException
getHeaders( array $include array() )
Get list of headers
Includes:
from
replyTo
readReceipt
returnPath
to
cc
bcc
subject
Parameters
- array
$include
optional array() - List of headers.
Returns
array
array
headerCharset( string $charset null )
HeaderCharset setter/getter
Parameters
- string
$charset
optional null - Character set.
Returns
string
this->charset
helperssource public
helpers( array $helpers null )
Helpers to be used in render
Parameters
- array
$helpers
optional null - Helpers list.
Returns
array|self
array|self
messagesource public
message( string $type null )
Get generated message (used by transport classes)
Parameters
- string
$type
optional null - Use MESSAGE_* constants or null to return the full message as array
Returns
string|array
String if have type, array if type is null
messageIdsource public
messageId( boolean|string $message null )
Message-ID
Parameters
- boolean|string
$message
optional null - True to generate a new Message-ID, False to ignore (not send in email), String to set as Message-ID
Returns
boolean|string|self
bool|string|self
Throws
SocketException
SocketException
readReceiptsource public
readReceipt( string|array $email null , string $name null )
Read Receipt (Disposition-Notification-To header)
Parameters
- string|array
$email
optional null - Null to get, String with email, Array with email as key, name as value or email as value (without name)
- string
$name
optional null - Name
Returns
array|CakeEmail
array|CakeEmail
Throws
SocketException
SocketException
replyTosource public
replyTo( string|array $email null , string $name null )
Reply-To
Parameters
- string|array
$email
optional null - Null to get, String with email, Array with email as key, name as value or email as value (without name)
- string
$name
optional null - Name
Returns
array|CakeEmail
array|CakeEmail
Throws
SocketException
SocketException
reset( )
Reset all CakeEmail internal variables to be able to send out a new email.
Returns
self
self
returnPathsource public
returnPath( string|array $email null , string $name null )
Return Path
Parameters
- string|array
$email
optional null - Null to get, String with email, Array with email as key, name as value or email as value (without name)
- string
$name
optional null - Name
Returns
array|CakeEmail
array|CakeEmail
Throws
SocketException
SocketException
send( string|array $content null )
Send an email using the specified content, template and layout
Parameters
- string|array
$content
optional null - String with message or array with messages
Returns
array
array
Throws
SocketException
SocketException
sendersource public
sender( string|array $email null , string $name null )
Sender
Parameters
- string|array
$email
optional null - Null to get, String with email, Array with email as key, name as value or email as value (without name)
- string
$name
optional null - Name
Returns
array|CakeEmail
array|CakeEmail
Throws
SocketException
SocketException
setHeaders( array $headers )
Sets headers for the message
Parameters
- array
$headers
- Associative array containing headers to be set.
Returns
self
self
Throws
SocketException
SocketException
subjectsource public
subject( string $subject null )
Get/Set Subject.
Parameters
- string
$subject
optional null - Subject string.
Returns
string|self
string|self
templatesource public
template( boolean|string $template false , boolean|string $layout false )
Template and layout
Parameters
- boolean|string
$template
optional false - Template name or null to not use
- boolean|string
$layout
optional false - Layout name or null to not use
Returns
array|self
array|self
theme( string $theme null )
Theme to use when rendering
Parameters
- string
$theme
optional null - Theme name.
Returns
string|self
string|self
to( string|array $email null , string $name null )
To
Parameters
- string|array
$email
optional null - Null to get, String with email, Array with email as key, name as value or email as value (without name)
- string
$name
optional null - Name
Returns
array|self
array|self
transportsource public
transport( string $name null )
Transport name
Parameters
- string
$name
optional null - Transport name.
Returns
string|self
string|self
viewRendersource public
viewRender( string $viewClass null )
View class for render
Parameters
- string
$viewClass
optional null - View class name.
Returns
string|self
string|self
viewVarssource public
viewVars( array $viewVars null )
Variables to be set on render
Parameters
- array
$viewVars
optional null - Variables to set for view.
Returns
array|self
array|self
Constants summary
string | EMAIL_CLIENT Default X-Mailer | 'CakePHP Email'
|
string | EMAIL_PATTERN Holds the regex pattern for email validation | '/^((?:[\p{L}0-9.!#$%&\'*+\/=?^_`{|}~-]+)*@[\p{L}0-9-.]+)$/ui'
|
integer | LINE_LENGTH_MUST Line length - no must more - RFC 2822 - 2.1.1 | 998
|
integer | LINE_LENGTH_SHOULD Line length - no should more - RFC 2822 - 2.1.1 | 78
|
string | MESSAGE_HTML Type of message - HTML | 'html'
|
string | MESSAGE_TEXT Type of message - TEXT | 'text'
|
Properties summary
protected string
The application wide charset, used to encode headers and body
$_attachmentssource
protected array
List of files that should be attached to the email.
Only absolute paths
protected 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
protected string
If set, boundary to use for multipart mime messages
protected array
Carbon Copy
List of email's that should receive a copy of the email. The Recipient WILL be able to see this list
$_charset8bitsource
protected array
8Bit character sets
array('UTF-8', 'SHIFT_JIS')
protected string|array
Configuration to transport
$_configClasssource
protected string
The class name used for email configuration.
$_configInstancesource
protected EmailConfig
An instance of the EmailConfig class can be set here
$_contentTypeCharsetsource
protected array
Define Content-Type charset name
array(
'ISO-2022-JP-MS' => 'ISO-2022-JP'
)
protected string
Domain for messageId generation. Needs to be manually set for CLI mailing as env('HTTP_HOST') is empty
protected string
What format should the email be sent in
protected array
Available formats to be sent.
array('text', 'html', 'both')
$_emailPatternsource
protected string
Regex for email validation
If null, filter_var() will be used. Use the emailPattern() method to set a custom pattern.'
protected array
The mail which the email is sent from
protected array
Associative array of a user defined headers Keys will be prefixed 'X-' as per RFC2822 Section 4.7.5
protected array
Helpers to be used in the render
$_htmlMessagesource
protected string
Html message
protected string
Layout for the View
protected array
Final message to send
protected boolean|string
Message ID
$_readReceiptsource
protected array
The read receipt email
protected array
The email the recipient will reply to
protected array
The mail that will be used in case of any errors like
- Remote mailserver down
- Remote user has exceeded his quota
- Unknown user
protected array
The sender email
protected string
The subject of the email
protected string
Template for the view
$_textMessagesource
protected string
Text message
protected array
Theme for the View
protected array
Recipient of the email
$_transportNamesource
protected string
What method should the email be sent
protected string
View for render
protected array
Vars to sent to render
public string
Charset the email body is sent in
public string
Charset the email header is sent in If null, the $charset property will be used as default
© 2005–2016 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.
http://api.cakephp.org/2.7/class-CakeEmail.html