PHP Class Horde_Smtp, horde
Implements the following SMTP-related RFCs:
- RFC 1870/STD 10: Message Size Declaration
- RFC 2034: Enhanced-Status-Codes
- RFC 2195: CRAM-MD5 (SASL Authentication)
- RFC 2595/4616: TLS & PLAIN (SASL Authentication)
- RFC 2831: DIGEST-MD5 authentication mechanism (obsoleted by RFC 6331)
- RFC 2920/STD 60: Pipelining
- RFC 3207: Secure SMTP over TLS
- RFC 3463: Enhanced Mail System Status Codes
- RFC 4422: SASL Authentication (for DIGEST-MD5)
- RFC 4954: Authentication
- RFC 5321: Simple Mail Transfer Protocol
- RFC 6152/STD 71: 8bit-MIMEtransport
- RFC 6409/STD 72: Message Submission for Mail
- RFC 6531: Internationalized Email
- XOAUTH2: https://developers.google.com/gmail/xoauth2_protocol
TODO:
- RFC 1845: CHECKPOINT
- RFC 2852: DELIVERYBY
- RFC 3030: BINARYMIME/CHUNKING
- RFC 3461: DSN
- RFC 3865: NO-SOLICITING
- RFC 3885: MTRK
- RFC 4141: CONPERM/CONNEG
- RFC 4405: SUBMITTER
- RFC 4468: BURL
- RFC 4865: FUTURERELEASE
- RFC 6710: MT-PRIORITY
- RFC 7293: RRVS
Show file
Open project: horde/horde
Class Usage Examples
Protected Properties
Public Methods
Protected Methods
Method Details
This object can not be cloned.
__construct()
public method
public __construct ( array $params = [] ) |
$params |
array |
Configuration parameters:
- chunk_size: (integer) If CHUNKING is supported on the server, the
chunk size (in octets) to send. 0 will disable chunking.
@since 1.7.0
- context: (array) Any context parameters passed to
stream_create_context(). @since 1.9.0
- debug: (string) If set, will output debug information to the stream
provided. The value can be any PHP supported wrapper that
can be opened via fopen().
DEFAULT: No debug output
- host: (string) The SMTP server.
DEFAULT: localhost
- localhost: (string) The hostname of the localhost. (since 1.9.0)
DEFAULT: Auto-determined.
- password: (mixed) The SMTP password or a Horde_Smtp_Password object
(since 1.1.0).
DEFAULT: NONE
- port: (string) The SMTP port.
DEFAULT: 587 (See RFC 6409/STD 72)
- secure: (string) Use SSL or TLS to connect.
DEFAULT: true (use 'tls' option, if available)
- false (No encryption)
- 'ssl' (Auto-detect SSL version)
- 'sslv2' (Force SSL version 2)
- 'sslv3' (Force SSL version 3)
- 'tls' (TLS; started via protocol-level negotation over
unencrypted channel; RECOMMENDED way of initiating secure
connection)
- 'tlsv1' (TLS direct version 1.x connection to server) [@since
1.3.0]
- true (Use TLS, if available) [@since 1.2.0]
- timeout: (integer) Connection timeout, in seconds.
DEFAULT: 30 seconds
- username: (string) The SMTP username.
DEFAULT: NONE
- xoauth2_token: (string) If set, will authenticate via the XOAUTH2
mechanism (if available) with this token. Either a
string or a Horde_Smtp_Password object (since 1.1.0). |
Authenticate user to server for a given method.
_getEncryptKey()
protected method
_getHostname()
protected method
Return the local hostname.
_getResponse()
protected method
Gets a line from the incoming stream and parses it.
protected _getResponse ( mixed $code, array $opts = [] ) : array |
$code |
mixed |
Expected reply code(s) (integer or array). |
$opts |
array |
Additional options:
- error: (string) On error, 'logout' or 'reset'?
- exception: (string) Throw an exception of this class on error.
|
return |
array |
An array with the response text. |
_hello()
protected method
Send "Hello" command to the server.
_initOb()
protected method
_processData()
protected method
Process the return from the DATA command.
_startTls()
protected method
Starts the TLS connection to the server, if necessary. See RFC 3207.
Returns a value from the internal params array.
isSecureConnection()
public method
Display if connection to the server has been secured via TLS or SSL.
Connect/login to the SMTP server.
Logout from the SMTP server.
processQueue()
public method
Send request to process the remote queue.
queryExtension()
public method
Returns whether the SMTP server supports the given extension.
public queryExtension ( string $ext ) : mixed |
$ext |
string |
The extension to query. |
return |
mixed |
False if the server doesn't support the extension;
otherwise, the extension value (returns true if the
extension only supports existence). |
public send ( mixed $from, mixed $to, mixed $data, array $opts = [] ) : array |
$from |
mixed |
The from address. Either a
Horde_Mail_Rfc822_Address object or a string. |
$to |
mixed |
The to (recipient) addresses. Either a
Horde_Mail_Rfc822_List object, a string, or an
array of addresses. |
$data |
mixed |
The data to send. Either a stream or a string. |
$opts |
array |
|
return |
array |
If no receipients were successful, a
Horde_Smtp_Exception will be thrown. If at least one
recipient was successful, an array with the following
format is returned: (@since 1.5.0)
- KEYS: Recipient addresses ($to addresses).
- VALUES: Boolean true (if message was accepted for this recpieint)
or a Horde_Smtp_Exception (if messages was not accepted). |
serialize()
public method
Sets a configuration parameter value.
unserialize()
public method
Property Details
$_connection protected property
Connection to the SMTP server.
protected Horde_Smtp_Connection $_connection |
return |
Horde_Smtp_Connection |
|
$_debug protected property
protected Horde_Smtp_Debug $_debug |
return |
Horde_Smtp_Debug |
|
$_ehlo protected property
The hello command to use for extended SMTP support.
protected string $_ehlo |
return |
string |
|
$_extensions protected property
If this value is null, we have not connected to server yet.
protected array $_extensions |
return |
array |
|
$_params protected property
Hash containing connection parameters.
protected array $_params |
return |
array |
|
$_requiredExts protected property
List of required ESMTP extensions.
protected array $_requiredExts |
return |
array |
|