diff options
author | alecpl <alec@alec.pl> | 2010-11-02 09:27:03 +0000 |
---|---|---|
committer | alecpl <alec@alec.pl> | 2010-11-02 09:27:03 +0000 |
commit | 6f096812c9fd460fddd21ff1cef55542cb79a890 (patch) | |
tree | e69c88fc0b3da2cf8da7e19f3b1e24b230c1d59c /program/steps/mail/addcontact.inc | |
parent | d3664623169c8db7a83b4049e4d3ef7b8714a923 (diff) |
- Support contact's email addresses up to 255 characters long (#1487095)
- Added email format checks when saving contacts data
Diffstat (limited to 'program/steps/mail/addcontact.inc')
-rw-r--r-- | program/steps/mail/addcontact.inc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/program/steps/mail/addcontact.inc b/program/steps/mail/addcontact.inc index d46db8ece..613a63e39 100644 --- a/program/steps/mail/addcontact.inc +++ b/program/steps/mail/addcontact.inc @@ -29,13 +29,23 @@ $CONTACTS = $RCMAIL->get_address_book(null, true); if (!empty($_POST['_address']) && is_object($CONTACTS)) { $contact_arr = $IMAP->decode_address_list(get_input_value('_address', RCUBE_INPUT_POST, true), 1, false); - + if (!empty($contact_arr[1]['mailto'])) { $contact = array( 'email' => $contact_arr[1]['mailto'], 'name' => $contact_arr[1]['name'] ); + // Validity checks + if (empty($contact['email'])) { + $OUTPUT->show_message('errorsavingcontact', 'error'); + $OUTPUT->send(); + } + else if (!check_email($contact['email'], false)) { + $OUTPUT->show_message('emailformaterror', 'error', array('email' => $contact['email'])); + $OUTPUT->send(); + } + $contact['email'] = idn_to_utf8($contact['email']); // use email address part for name @@ -60,7 +70,7 @@ if (!empty($_POST['_address']) && is_object($CONTACTS)) } if (!$done) - $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsavingcontact', 'warning'); + $OUTPUT->show_message($plugin['message'] ? $plugin['message'] : 'errorsavingcontact', 'error'); $OUTPUT->send(); |