On this page
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
Copyright: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
License: MIT License
Location: Cake/Network/Email/CakeEmail.php
Constants summary
string'CakePHP Email'string'/^((?:[\p{L}0-9.!#$%&\'*+\/=?^_`{|}~-]+)*@[\p{L}0-9-_.]+)$/ui'integer998integer78string'html'string'text'
Properties summary
-
$_appCharsetprotectedThe application wide charset, used to encode headers and bodystring -
$_attachmentsprotectedList of files that should be attached to the email.array -
$_bccprotectedBlind Carbon Copyarray -
$_boundaryprotectedIf set, boundary to use for multipart mime messagesstring -
$_ccprotectedCarbon Copyarray -
$_charset8bitprotected8Bit character setsarray -
$_configprotectedConfiguration to transportstring|array -
$_configClassprotectedThe class name used for email configuration.string -
$_configInstanceprotectedAn instance of the EmailConfig class can be set hereEmailConfig -
$_contentTypeCharsetprotectedDefine Content-Type charset namearray -
$_domainprotectedstringDomain for messageId generation. Needs to be manually set for CLI mailing as env('HTTP_HOST') is empty
-
$_emailFormatprotectedWhat format should the email be sent instring -
$_emailFormatAvailableprotectedAvailable formats to be sent.array -
$_emailPatternprotectedRegex for email validationstring -
$_fromprotectedThe mail which the email is sent fromarray -
$_headersprotectedarrayAssociative array of a user defined headers Keys will be prefixed 'X-' as per RFC2822 Section 4.7.5
-
$_helpersprotectedHelpers to be used in the renderarray -
$_htmlMessageprotectedHtml messagestring -
$_layoutprotectedLayout for the Viewstring -
$_messageprotectedFinal message to sendarray -
$_messageIdprotectedMessage IDboolean|string -
$_readReceiptprotectedThe read receipt emailarray -
$_replyToprotectedThe email the recipient will reply toarray -
$_returnPathprotectedarrayThe mail that will be used in case of any errors like - Remote mailserver down - Remote user has exceeded his quota - Unknown user
-
$_senderprotectedThe sender emailarray -
$_subjectprotectedThe subject of the emailstring -
$_templateprotectedTemplate for the viewstring -
$_textMessageprotectedText messagestring -
$_themeprotectedTheme for the Viewarray -
$_toprotectedRecipient of the emailarray -
Instance of transport class
$_transportClassprotected -
$_transportNameprotectedWhat method should the email be sentstring -
$_viewRenderprotectedView for renderstring -
$_viewVarsprotectedVars to sent to renderarray -
$charsetpublicCharset the email body is sent instring -
$headerCharsetpublicstringCharset the email header is sent in If null, the $charset property will be used as default
Method Summary
-
__construct() publicConstructor
-
_addEmail() protectedAdd email
-
_applyConfig() protectedApply the config to an instance
-
_attachFiles() protectedAttach non-embedded files by adding file contents inside boundaries.
-
_attachInlineFiles() protectedAttach inline/embedded files to the message.
-
_createBoundary() protectedCreate unique boundary identifier
-
_encode() protectedEncode the specified string using the current charset
-
_encodeString() protected
Translates a string for one charset to another if the App.encoding value differs and the mb_convert_encoding function exists
-
_formatAddress() protectedFormat addresses
-
_getContentTransferEncoding() protectedReturn the Content-Transfer Encoding value based on the set charset
-
_getContentTypeCharset() protectedReturn charset value for Content-Type.
-
_getTypes() protectedGets the text body types that are in this email message
-
_readFile() protectedRead the file contents and return a base64 version of the file contents.
-
_render() protectedRender the body of the email.
-
_renderTemplates() protected
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.
-
_setEmail() protectedSet email
-
_setEmailSingle() protectedSet only 1 email
-
_validateEmail() protectedValidate email address
-
_wrap() protectedWrap the message to follow the RFC 2822 - 2.1.1
-
addAttachments() publicAdd attachments
-
addBcc() publicAdd Bcc
-
addCc() publicAdd Cc
-
addHeaders() publicAdd header for the message
-
addTo() publicAdd To
-
attachments() publicAdd attachments to the email message
-
bcc() publicBcc
-
cc() publicCc
-
charset() publicCharset setter/getter
-
config() publicConfiguration to use when send email
- Static method to fast create an instance of CakeEmail
-
domain() publicDomain as top level (the part after @)
-
emailFormat() publicEmail format
-
emailPattern() publicEmailPattern setter/getter
-
from() publicFrom
-
getHeaders() publicGet list of headers
-
headerCharset() publicHeaderCharset setter/getter
-
helpers() publicHelpers to be used in render
-
message() publicGet generated message (used by transport classes)
-
messageId() publicMessage-ID
-
readReceipt() publicRead Receipt (Disposition-Notification-To header)
-
replyTo() publicReply-To
-
reset() publicReset all CakeEmail internal variables to be able to send out a new email.
-
returnPath() publicReturn Path
-
send() publicSend an email using the specified content, template and layout
-
sender() publicSender
-
setHeaders() publicSets headers for the message
-
subject() publicGet/Set Subject.
-
template() publicTemplate and layout
-
theme() publicTheme to use when rendering
-
to() publicTo
-
transport() publicTransport name
-
transportClass() publicReturn the transport class
-
viewRender() publicView class for render
-
viewVars() publicVariables to be set on render
Method Detail
__construct()source public
__construct( array|string $config null )
Constructor
Parameters
-
array|string
$configoptional null - Array of configs, or string to load configs from email.php
_addEmail()source 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
CakeEmailThrows
SocketException_applyConfig()source protected
_applyConfig( array $config )
Apply the config to an instance
Parameters
-
array
$config - Configuration options.
Throws
ConfigureExceptionWhen configuration file cannot be found, or is missing the named config.
_attachFiles()source protected
_attachFiles( string $boundary null )
Attach non-embedded files by adding file contents inside boundaries.
Parameters
-
string
$boundaryoptional null - Boundary to use. If null, will default to $this->_boundary
Returns
arrayAn array of lines to add to the message
_attachInlineFiles()source protected
_attachInlineFiles( string $boundary null )
Attach inline/embedded files to the message.
Parameters
-
string
$boundaryoptional null - Boundary to use. If null, will default to $this->_boundary
Returns
arrayAn array of lines to add to the message
_encode()source protected
_encode( string $text )
Encode the specified string using the current charset
Parameters
-
string
$text - String to encode
Returns
stringEncoded string
_encodeString()source 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_formatAddress()source protected
_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_getContentTransferEncoding()source protected
_getContentTransferEncoding( )
Return the Content-Transfer Encoding value based on the set charset
Returns
string_getContentTypeCharset()source protected
_getContentTypeCharset( )
Return charset value for Content-Type.
Checks fallback/compatibility types which include workarounds for legacy japanese character sets.
Returns
string_getTypes()source protected
_getTypes( )
Gets the text body types that are in this email message
Returns
arrayArray of types. Valid types are 'text' and 'html'
_readFile()source 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
stringFile contents in base64 encoding
_render()source protected
_render( array $content )
Render the body of the email.
Parameters
-
array
$content - Content to render
Returns
arrayEmail body ready to be sent
_renderTemplates()source 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
arrayThe rendered content with html and text keys.
_setEmail()source 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
CakeEmail_setEmailSingle()source 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
CakeEmailThrows
SocketException_validateEmail()source protected
_validateEmail( string $email )
Validate email address
Parameters
-
string
$email
Throws
SocketExceptionIf email address does not validate
_wrap()source 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
$wrapLengthoptional CakeEmail::LINE_LENGTH_MUST - The line length
Returns
arrayWrapped message
addAttachments()source public
addAttachments( string|array $attachments )
Add attachments
Parameters
-
string|array
$attachments - String with the filename or array with filenames
Returns
CakeEmailThrows
SocketExceptionSee
CakeEmail::attachments()addBcc()source 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
$nameoptional null - Name
Returns
CakeEmailaddCc()source public
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
$nameoptional null - Name
Returns
CakeEmailaddHeaders()source public
addHeaders( array $headers )
Add header for the message
Parameters
-
array
$headers - Headers to set.
Returns
CakeEmailThrows
SocketExceptionaddTo()source public
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
$nameoptional null - Name
Returns
CakeEmailattachments()source 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
$attachmentsoptional null - String with the filename or array with filenames
Returns
array|CakeEmailEither the array of attachments when getting or $this when setting.
Throws
SocketExceptionbcc()source public
bcc( string|array $email null , string $name null )
Bcc
Parameters
-
string|array
$emailoptional null -
Null to get, String with email, Array with email as key, name as value or email as value (without name)
-
string
$nameoptional null - Name
Returns
array|CakeEmailcc()source public
cc( string|array $email null , string $name null )
Cc
Parameters
-
string|array
$emailoptional null -
Null to get, String with email, Array with email as key, name as value or email as value (without name)
-
string
$nameoptional null - Name
Returns
array|CakeEmailcharset()source public
charset( string $charset null )
Charset setter/getter
Parameters
-
string
$charsetoptional null - Character set.
Returns
stringthis->charset
config()source 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' => 'bill@example.com'));
Parameters
-
string|array
$configoptional null - String with configuration name (from email.php), array with config or null to return current config
Returns
string|array|CakeEmaildeliver()source 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
$tooptional null - Address to send (see CakeEmail::to()). If null, will try to use 'to' from transport config
-
string
$subjectoptional null - String of subject or null to use 'subject' from transport config
-
string|array
$messageoptional null - String with message or array with variables to be used in render
-
string|array
$transportConfigoptional 'fast' - String to use config from EmailConfig or array with configs
-
boolean
$sendoptional true - Send the email or just return the instance pre-configured
Returns
CakeEmailInstance of CakeEmail
Throws
SocketExceptiondomain()source public
domain( string $domain null )
Domain as top level (the part after @)
Parameters
-
string
$domainoptional null - Manually set the domain for CLI mailing
Returns
string|CakeEmailemailFormat()source public
emailFormat( string $format null )
Email format
Parameters
-
string
$formatoptional null - Formatting string.
Returns
string|CakeEmailThrows
SocketExceptionemailPattern()source public
emailPattern( string|boolean|null $regex false )
EmailPattern setter/getter
Parameters
-
string|boolean|null
$regexoptional 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|CakeEmailfrom()source public
from( string|array $email null , string $name null )
From
Parameters
-
string|array
$emailoptional null -
Null to get, String with email, Array with email as key, name as value or email as value (without name)
-
string
$nameoptional null - Name
Returns
array|CakeEmailThrows
SocketExceptiongetHeaders()source public
getHeaders( array $include array() )
Get list of headers
Includes:
fromreplyToreadReceiptreturnPathtoccbccsubject
Parameters
-
array
$includeoptional array() - List of headers.
Returns
arrayheaderCharset()source public
headerCharset( string $charset null )
HeaderCharset setter/getter
Parameters
-
string
$charsetoptional null - Character set.
Returns
stringthis->charset
helpers()source public
helpers( array $helpers null )
Helpers to be used in render
Parameters
-
array
$helpersoptional null - Helpers list.
Returns
array|CakeEmailmessage()source public
message( string $type null )
Get generated message (used by transport classes)
Parameters
-
string
$typeoptional null - Use MESSAGE_* constants or null to return the full message as array
Returns
string|arrayString if have type, array if type is null
messageId()source public
messageId( boolean|string $message null )
Message-ID
Parameters
-
boolean|string
$messageoptional null - True to generate a new Message-ID, False to ignore (not send in email), String to set as Message-ID
Returns
boolean|string|CakeEmailThrows
SocketExceptionreadReceipt()source public
readReceipt( string|array $email null , string $name null )
Read Receipt (Disposition-Notification-To header)
Parameters
-
string|array
$emailoptional null -
Null to get, String with email, Array with email as key, name as value or email as value (without name)
-
string
$nameoptional null - Name
Returns
array|CakeEmailThrows
SocketExceptionreplyTo()source public
replyTo( string|array $email null , string $name null )
Reply-To
Parameters
-
string|array
$emailoptional null -
Null to get, String with email, Array with email as key, name as value or email as value (without name)
-
string
$nameoptional null - Name
Returns
array|CakeEmailThrows
SocketExceptionreset()source public
reset( )
Reset all CakeEmail internal variables to be able to send out a new email.
Returns
CakeEmailreturnPath()source public
returnPath( string|array $email null , string $name null )
Return Path
Parameters
-
string|array
$emailoptional null -
Null to get, String with email, Array with email as key, name as value or email as value (without name)
-
string
$nameoptional null - Name
Returns
array|CakeEmailThrows
SocketExceptionsend()source public
send( string|array $content null )
Send an email using the specified content, template and layout
Parameters
-
string|array
$contentoptional null - String with message or array with messages
Returns
arrayThrows
SocketExceptionsender()source public
sender( string|array $email null , string $name null )
Sender
Parameters
-
string|array
$emailoptional null -
Null to get, String with email, Array with email as key, name as value or email as value (without name)
-
string
$nameoptional null - Name
Returns
array|CakeEmailThrows
SocketExceptionsetHeaders()source public
setHeaders( array $headers )
Sets headers for the message
Parameters
-
array
$headers - Associative array containing headers to be set.
Returns
CakeEmailThrows
SocketExceptionsubject()source public
subject( string $subject null )
Get/Set Subject.
Parameters
-
string
$subjectoptional null - Subject string.
Returns
string|CakeEmailtemplate()source public
template( boolean|string $template false , boolean|string $layout false )
Template and layout
Parameters
-
boolean|string
$templateoptional false - Template name or null to not use
-
boolean|string
$layoutoptional false - Layout name or null to not use
Returns
array|CakeEmailtheme()source public
theme( string $theme null )
Theme to use when rendering
Parameters
-
string
$themeoptional null - Theme name.
Returns
string|CakeEmailto()source public
to( string|array $email null , string $name null )
To
Parameters
-
string|array
$emailoptional null -
Null to get, String with email, Array with email as key, name as value or email as value (without name)
-
string
$nameoptional null - Name
Returns
array|CakeEmailtransport()source public
transport( string $name null )
Transport name
Parameters
-
string
$nameoptional null - Transport name.
Returns
string|CakeEmailtransportClass()source public
transportClass( )
Return the transport class
Returns
AbstractTransportThrows
SocketExceptionviewRender()source public
viewRender( string $viewClass null )
View class for render
Parameters
-
string
$viewClassoptional null - View class name.
Returns
string|CakeEmailviewVars()source public
viewVars( array $viewVars null )
Variables to be set on render
Parameters
-
array
$viewVarsoptional null - Variables to set for view.
Returns
array|CakeEmailProperties detail
$_appCharsetsource
protected string
The application wide charset, used to encode headers and body
null
$_attachmentssource
protected array
List of files that should be attached to the email.
Only absolute paths
array()
$_bccsource
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
array()
$_ccsource
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
array()
$_contentTypeCharsetsource
protected array
Define Content-Type charset name
array(
'ISO-2022-JP-MS' => 'ISO-2022-JP'
)
$_domainsource
protected string
Domain for messageId generation. Needs to be manually set for CLI mailing as env('HTTP_HOST') is empty
null
$_emailFormatAvailablesource
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.'
self::EMAIL_PATTERN
$_headerssource
protected array
Associative array of a user defined headers Keys will be prefixed 'X-' as per RFC2822 Section 4.7.5
array()
$_returnPathsource
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
array()
$headerCharsetsource
public string
Charset the email header is sent in If null, the $charset property will be used as default
null
© 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-CakeEmail.html