包含:登录失败锁定、90天密码有效期、30分钟会话超时、 强制改密、登录审计日志、屏幕水印、企业背景图、 备案信息固定底部、favicon、登录页JS修复等全部改动
This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
email-parse [](https://travis-ci.org/mmucklo/email-parse)
|
||||
===========
|
||||
|
||||
Email\Parse is a multiple (and single) batch email address parser that is reasonably RFC822 / RFC2822 compliant.
|
||||
|
||||
It parses a list of 1 to n email addresses separated by space or comma
|
||||
|
||||
Installation:
|
||||
-------------
|
||||
Add this line to your composer.json "require" section:
|
||||
|
||||
### composer.json
|
||||
```json
|
||||
"require": {
|
||||
...
|
||||
"mmucklo/email-parse": "*"
|
||||
```
|
||||
|
||||
Usage:
|
||||
------
|
||||
|
||||
```php
|
||||
use Email\Parse;
|
||||
|
||||
$result = Parse::getInstance()->parse("a@aaa.com b@bbb.com");
|
||||
```
|
||||
|
||||
Notes:
|
||||
======
|
||||
This should be RFC 2822 compliant, although it will let a few obsolete RFC 822 addresses through such as `test"test"test@xyz.com` (note the quoted string in the middle of the address, which may be obsolete as of RFC 2822). However it wont allow escaping outside of quotes such as `test@test@xyz.com`. This would have to be written as `"test@test"@xyz.com`
|
||||
|
||||
Here are a few other examples:
|
||||
|
||||
```
|
||||
"John Q. Public" <johnpublic@xyz.com>
|
||||
this.is.an.address@xyz.com
|
||||
how-about-an-ip@[10.0.10.2]
|
||||
how-about-comments(this is a comment!!)@xyz.com
|
||||
```
|
||||
|
||||
#### Function Spec ####
|
||||
|
||||
```php
|
||||
/**
|
||||
* function parse($emails, $multiple = true, $encoding = 'UTF-8')
|
||||
* @param string $emails List of Email addresses separated by comma or space if multiple
|
||||
* @param bool $multiple (optional, default: true) Whether to parse for multiple email addresses or not
|
||||
* @param string $encoding (optional, default: 'UTF-8')The encoding if not 'UTF-8'
|
||||
* @return: see below: */
|
||||
|
||||
if ($multiple):
|
||||
array('success' => boolean, // whether totally successful or not
|
||||
'reason' => string, // if unsuccessful, the reason why
|
||||
'email_addresses' =>
|
||||
array('address' => string, // the full address (not including comments)
|
||||
'original_address' => string, // the full address including comments
|
||||
'simple_address' => string, // simply local_part@domain_part (e.g. someone@somewhere.com)
|
||||
'name' => string, // the name on the email if given (e.g.: John Q. Public), including any quotes
|
||||
'name_parsed' => string, // the name on the email if given (e.g.: John Q. Public), excluding any quotes
|
||||
'local_part' => string, // the local part (before the '@' sign - e.g. johnpublic)
|
||||
'local_part_parsed' => string, // the local part (before the '@' sign - e.g. johnpublic), excluding any quotes
|
||||
'domain' => string, // the domain after the '@' if given
|
||||
'ip' => string, // the IP after the '@' if given
|
||||
'domain_part' => string, // either domain or IP depending on what given
|
||||
'invalid' => boolean, // if the email is valid or not
|
||||
'invalid_reason' => string), // if the email is invalid, the reason why
|
||||
array( .... ) // the next email address matched
|
||||
)
|
||||
else:
|
||||
array('address' => string, // the full address including comments
|
||||
'name' => string, // the name on the email if given (e.g.: John Q. Public)
|
||||
'local_part' => string, // the local part (before the '@' sign - e.g. johnpublic)
|
||||
'domain' => string, // the domain after the '@' if given
|
||||
'ip' => string, // the IP after the '@' if given
|
||||
'invalid' => boolean, // if the email is valid or not
|
||||
'invalid_reason' => string) // if the email is invalid, the reason why
|
||||
endif;
|
||||
```
|
||||
|
||||
Other Examples:
|
||||
---------------
|
||||
```php
|
||||
$email = "\"J Doe\" <johndoe@xyz.com>";
|
||||
$result = Email\Parse->getInstance()->parse($email, false);
|
||||
|
||||
$result == array('address' => '"JD" <johndoe@xyz.com>',
|
||||
'original_address' => '"JD" <johndoe@xyz.com>',
|
||||
'name' => '"JD"',
|
||||
'name_parsed' => 'J Doe',
|
||||
'local_part' => 'johndoe',
|
||||
'local_part_parsed' => 'johndoe',
|
||||
'domain_part' => 'xyz.com',
|
||||
'domain' => 'xyz.com',
|
||||
'ip' => '',
|
||||
'invalid' => false,
|
||||
'invalid_reason' => '');
|
||||
|
||||
$emails = "testing@[10.0.10.45] testing@xyz.com, testing-"test...2"@xyz.com (comment)";
|
||||
$result = Email\Parse->getInstance()->parse($emails);
|
||||
$result == array(
|
||||
'success' => boolean true
|
||||
'reason' => null
|
||||
'email_addresses' =>
|
||||
array(
|
||||
array(
|
||||
'address' => 'testing@[10.0.10.45]',
|
||||
'original_address' => 'testing@[10.0.10.45]',
|
||||
'name' => '',
|
||||
'name_parsed' => '',
|
||||
'local_part' => 'testing',
|
||||
'local_part_parsed' => 'testing',
|
||||
'domain_part' => '10.0.10.45',
|
||||
'domain' => '',
|
||||
'ip' => '10.0.10.45',
|
||||
'invalid' => false,
|
||||
'invalid_reason' => ''),
|
||||
array(
|
||||
'address' => 'testing@xyz.com',
|
||||
'original_address' => 'testing@xyz.com',
|
||||
'name' => '',
|
||||
'name_parsed' => '',
|
||||
'local_part' => 'testing',
|
||||
'local_part' => 'testing',
|
||||
'domain_part' => 'xyz.com',
|
||||
'domain' => 'xyz.com',
|
||||
'ip' => '',
|
||||
'invalid' => false,
|
||||
'invalid_reason' => '')
|
||||
array(
|
||||
'address' => '"testing-test...2"@xyz.com',
|
||||
'original_address' => 'testing-"test...2"@xyz.com (comment)',
|
||||
'name' => '',
|
||||
'name_parsed' => '',
|
||||
'local_part' => '"testing-test2"',
|
||||
'local_part_parsed' => 'testing-test...2',
|
||||
'domain_part' => 'xyz.com',
|
||||
'domain' => 'xyz.com',
|
||||
'ip' => '',
|
||||
'invalid' => false,
|
||||
'invalid_reason' => '')
|
||||
)
|
||||
);
|
||||
```
|
||||
Reference in New Issue
Block a user