- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/mail/internal/sendertable.php
- Класс: BitrixMainMailInternalSenderTable
- Вызов: SenderTable::getMap
static function getMap()
{
return [
(new FieldsIntegerField("ID"))
->configurePrimary(true)
->configureAutocomplete(true)
->configureTitle(Loc::getMessage("main_mail_sender_id_title")),
(new FieldsStringField("EMAIL"))
->configureRequired(true)
->configureTitle(Loc::getMessage("main_mail_sender_email_title")),
(new FieldsStringField("NAME"))
->configureTitle(Loc::getMessage("main_mail_sender_name_title")),
(new FieldsIntegerField("USER_ID"))
->configureAutocomplete(true)
->configureTitle(Loc::getMessage("main_mail_sender_user_id_title")),
(new FieldsBooleanField("IS_CONFIRMED"))
->configureStorageValues("0", "1")
->configureDefaultValue("0")
->configureTitle(Loc::getMessage("main_mail_sender_is_confirmed_title")),
(new FieldsBooleanField("IS_PUBLIC"))
->configureStorageValues("0", "1")
->configureDefaultValue("0")
->configureTitle(Loc::getMessage("main_mail_sender_is_public_title")),
(new FieldsArrayField("OPTIONS"))
->configureSerializationPhp()
->configureRequired(true)
->configureTitle(Loc::getMessage("main_mail_sender_options_title"))
->addSaveDataModifier(function($value)
{
$value = unserialize($value, ['allowed_classes' => false]);
if (!empty($value['smtp']['password']))
{
$value['smtp']['encrypted'] = false;
$cryptoOptions = ConfigConfiguration::getValue('crypto');
if (!empty($cryptoOptions['crypto_key']))
{
try
{
$cipher = new SecurityCipher();
$value['smtp']['password'] = $cipher->encrypt(
$value['smtp']['password'],
$cryptoOptions['crypto_key']
);
$value['smtp']['encrypted'] = true;
}
catch (SecuritySecurityException $e)
{
}
}
$value['smtp']['password'] = base64_encode($value['smtp']['password']);
}
return serialize($value);
})
->addFetchDataModifier(function($value)
{
if (!empty($value['smtp']['password']))
{
$value['smtp']['password'] = base64_decode($value['smtp']['password']);
if (!empty($value['smtp']['encrypted']))
{
$cryptoOptions = ConfigConfiguration::getValue('crypto');
if (!empty($cryptoOptions['crypto_key']))
{
try
{
$cipher = new SecurityCipher();
$value['smtp']['password'] = $cipher->decrypt(
$value['smtp']['password'],
$cryptoOptions['crypto_key']
);
unset($value['smtp']['encrypted']);
} catch (SecuritySecurityException $e)
{
}
}
}
}
if (!empty($value['smtp']) && is_array($value['smtp']))
{
if (empty($value['smtp']['protocol']))
{
if (465 == $value['smtp']['port'])
{
$value['smtp']['protocol'] = 'smtps';
} else if (587 == $value['smtp']['port'])
{
$value['smtp']['protocol'] = 'smtp';
}
}
}
return $value;
})
];
}