summaryrefslogtreecommitdiff
path: root/program/steps/mail
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2010-11-02 09:27:03 +0000
committeralecpl <alec@alec.pl>2010-11-02 09:27:03 +0000
commit6f096812c9fd460fddd21ff1cef55542cb79a890 (patch)
treee69c88fc0b3da2cf8da7e19f3b1e24b230c1d59c /program/steps/mail
parentd3664623169c8db7a83b4049e4d3ef7b8714a923 (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')
-rw-r--r--program/steps/mail/addcontact.inc14
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();