Inheritance diagram for ilBMFTransport_SMTP:
Collaboration diagram for ilBMFTransport_SMTP:Public Member Functions | |
| ilBMFTransport_SMTP ($URL, $encoding='US-ASCII') | |
| ilBMFTransport_SMTP Constructor | |
| send ($msg, $options=array()) | |
| Sends and receives SOAP data. | |
| setCredentials ($username, $password) | |
| Sets data for HTTP authentication, creates Authorization header. | |
| _validateUrl () | |
| Validates url data passed to constructor. | |
Data Fields | |
| $credentials = '' | |
| $timeout = 4 | |
| $urlparts = NULL | |
| $url = '' | |
| $incoming_payload = '' | |
| $_userAgent = SOAP_LIBRARY_NAME | |
| $encoding = SOAP_DEFAULT_ENCODING | |
| $host = '127.0.0.1' | |
| $port = 25 | |
| $auth = NULL | |
Definition at line 44 of file class.ilBMFTransport_SMTP.php.
| ilBMFTransport_SMTP::_validateUrl | ( | ) |
Validates url data passed to constructor.
Definition at line 191 of file class.ilBMFTransport_SMTP.php.
References ilBMFBase_Object::_raiseSoapFault().
Referenced by send().
{
if (!is_array($this->urlparts)) {
$this->_raiseSoapFault("Unable to parse URL $url");
return false;
}
if (!isset($this->urlparts['scheme']) ||
strcasecmp($this->urlparts['scheme'], 'mailto') != 0) {
$this->_raiseSoapFault("Unable to parse URL $url");
return false;
}
if (!isset($this->urlparts['path'])) {
$this->_raiseSoapFault("Unable to parse URL $url");
return false;
}
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilBMFTransport_SMTP::ilBMFTransport_SMTP | ( | $ | URL, | |
| $ | encoding = 'US-ASCII' | |||
| ) |
ilBMFTransport_SMTP Constructor
| string | $URL mailto:address |
public
Definition at line 64 of file class.ilBMFTransport_SMTP.php.
References $encoding, and ilBMFBase::ilBMFBase().
{
parent::ilBMFBase('SMTP');
$this->encoding = $encoding;
$this->urlparts = @parse_url($URL);
$this->url = $URL;
}
Here is the call graph for this function:| ilBMFTransport_SMTP::send | ( | $ | msg, | |
| $ | options = array() | |||
| ) |
Sends and receives SOAP data.
| string | $msg Outgoing POST data. | |
| string | $action SOAP Action header data. | |
| integer | $timeout Socket timeout, defaults to 0 or off. |
Definition at line 82 of file class.ilBMFTransport_SMTP.php.
References $namespace, $out, ilBMFBase::_makeEnvelope(), ilBMFBase_Object::_raiseSoapFault(), and _validateUrl().
{
$this->incoming_payload = '';
$this->outgoing_payload = $msg;
if (!$this->_validateUrl()) {
return $this->fault;
}
if (!$options || !isset($options['from'])) {
return $this->_raiseSoapFault('No From: address to send message with');
}
if (isset($options['host'])) $this->host = $options['host'];
if (isset($options['port'])) $this->port = $options['port'];
if (isset($options['auth'])) $this->auth = $options['auth'];
if (isset($options['username'])) $this->username = $options['username'];
if (isset($options['password'])) $this->password = $options['password'];
$headers = array();
$headers['From'] = $options['from'];
$headers['X-Mailer'] = $this->_userAgent;
$headers['MIME-Version'] = '1.0';
$headers['Message-ID'] = md5(time()) . '.soap@' . $this->host;
$headers['To'] = $this->urlparts['path'];
if (isset($options['soapaction'])) {
$headers['Soapaction'] = "\"{$options['soapaction']}\"";
}
if (isset($options['headers']))
$headers = array_merge($headers, $options['headers']);
// If the content type is already set, we assume that MIME encoding is
// already done.
if (isset($headers['Content-Type'])) {
$out = $msg;
} else {
// Do a simple inline MIME encoding.
$headers['Content-Disposition'] = 'inline';
$headers['Content-Type'] = "text/xml; charset=\"$this->encoding\"";
if (isset($options['transfer-encoding'])) {
if (strcasecmp($options['transfer-encoding'], 'quoted-printable') == 0) {
$headers['Content-Transfer-Encoding'] = $options['transfer-encoding'];
$out = $msg;
} elseif (strcasecmp($options['transfer-encoding'],'base64') == 0) {
$headers['Content-Transfer-Encoding'] = 'base64';
$out = chunk_split(base64_encode($msg), 76, "\n");
} else {
return $this->_raiseSoapFault("Invalid Transfer Encoding: {$options['transfer-encoding']}");
}
} else {
// Default to base64.
$headers['Content-Transfer-Encoding'] = 'base64';
$out = chunk_split(base64_encode($msg));
}
}
$headers['Subject'] = isset($options['subject']) ? $options['subject'] : 'SOAP Message';
foreach ($headers as $key => $value) {
$header_text .= "$key: $value\n";
}
$this->outgoing_payload = $header_text . "\r\n" . $this->outgoing_payload;
$mailer_params = array(
'host' => $this->host,
'port' => $this->port,
'username' => $this->username,
'password' => $this->password,
'auth' => $this->auth
);
$mailer =& new Mail_smtp($mailer_params);
$result = $mailer->send($this->urlparts['path'], $headers, $out);
if (!PEAR::isError($result)) {
$val =& new ilBMFValue('Message-ID', 'string', $headers['Message-ID']);
} else {
$sval[] =& new ilBMFValue('faultcode', 'QName', 'SOAP-ENV:Client');
$sval[] =& new ilBMFValue('faultstring', 'string', "couldn't send SMTP message to {$this->urlparts['path']}");
$val =& new ilBMFValue('Fault', 'Struct', $sval);
}
$mqname =& new QName($method, $namespace);
$methodValue =& new ilBMFValue('Response', 'Struct', array($val));
$this->incoming_payload = $this->_makeEnvelope($methodValue,
$this->headers,
$this->encoding);
return $this->incoming_payload;
}
Here is the call graph for this function:| ilBMFTransport_SMTP::setCredentials | ( | $ | username, | |
| $ | password | |||
| ) |
Sets data for HTTP authentication, creates Authorization header.
| string | $username Username. | |
| string | $password Response data, minus HTTP headers. |
public
Definition at line 179 of file class.ilBMFTransport_SMTP.php.
{
$this->username = $username;
$this->password = $password;
}
| ilBMFTransport_SMTP::$_userAgent = SOAP_LIBRARY_NAME |
Definition at line 52 of file class.ilBMFTransport_SMTP.php.
| ilBMFTransport_SMTP::$auth = NULL |
Definition at line 56 of file class.ilBMFTransport_SMTP.php.
| ilBMFTransport_SMTP::$credentials = '' |
Definition at line 47 of file class.ilBMFTransport_SMTP.php.
| ilBMFTransport_SMTP::$encoding = SOAP_DEFAULT_ENCODING |
Definition at line 53 of file class.ilBMFTransport_SMTP.php.
Referenced by ilBMFTransport_SMTP().
| ilBMFTransport_SMTP::$host = '127.0.0.1' |
Definition at line 54 of file class.ilBMFTransport_SMTP.php.
| ilBMFTransport_SMTP::$incoming_payload = '' |
Definition at line 51 of file class.ilBMFTransport_SMTP.php.
| ilBMFTransport_SMTP::$port = 25 |
Definition at line 55 of file class.ilBMFTransport_SMTP.php.
| ilBMFTransport_SMTP::$timeout = 4 |
Definition at line 48 of file class.ilBMFTransport_SMTP.php.
| ilBMFTransport_SMTP::$url = '' |
Definition at line 50 of file class.ilBMFTransport_SMTP.php.
| ilBMFTransport_SMTP::$urlparts = NULL |
Definition at line 49 of file class.ilBMFTransport_SMTP.php.
1.7.1