Стандартные возможности

Динамический контент может быть использован для автоматической вставки контента, загружаемого с внешнего сервера. Для этого используется функция GetRemoteContent:

${GetRemoteContent('http://domain.com/mycontent')}

Если внешний сервер требует авторизацию, то в функцию надо передать логин и пароль:

${GetRemoteContent('http://domain.com/mycontent', 'username', 'password')}

Контент с внешнего сервера будет подставлен в то место, где используется функция. Функция может использоваться как в html, так и в тексте (например, чтобы подставить текст в тему письма или поле From).

Загрузку внешнего контента можно использовать в письме несколько раз. Поддерживаются протоколы HTTP и HTTPS. Любые ошибки (например, сервер не отвечает) вызовут отмену отправки письма, поэтому подписчику не уйдёт незаполненное, или поврежденное письмо.

Внешний контент кэшируется, чтобы увеличить скорость генерации сообщений. Кэширование происходит по URL. Если вы хотите подставлять разный контент в разные сообщения, то используйте параметр в URL - например, свойство подписчика:

${GetRemoteContent('http://domain.com?age=' + SubscriberProperty('age'))}

Емейл в качестве параметра:

${GetRemoteContent('http://domain.com?age=' + SubscriberEmail)}

Лучше всего использовать свойство с ограниченным числом значений. Например: возраст, город, пол и т. д.

Не рекомендуется использовать уникальные для каждого подписчика значения, такие как ID или email. Это вызовет запрос к внешнему серверу для каждого письма. Скорость отправки при этом будет очень низкая.

Несколько примеров:

Привет, ${SubscriberFirstname}!

<p>
    Следующие выходные:
    ${GetRemoteContent('http://calendar.domain.com/holidays')}
</p>

<p>
    Ваш гороскоп на сегодня:
    ${GetRemoteContent('http://calendar.domain.com/horoscope?sign=' + SubscriberProperty('sign'))}
</p>

<p>Предложения для вашего города на завтра:</p>
<p>
    ${GetRemoteContent('http://offers.domain.com?city=' + SubscriberProperty('city') + '&gender=' + SubscriberProperty('gender'))}
</p>

Расширенные возможности

Использование метода GetRemoteContent - это самый простой способ получить контент с удаленного сервера. Метод прост и эффективен. Неудобство только в том, что полученный контент не может быть обработан перед вставкой в письмо.

Чтобы обработать контент, нужно использовать расширенный метод - GetRemoteContentAsText. Этот метод позволяет записать полученные данные в строковую переменную, к которой потом можно применить другие методы, или использовать ее в качестве параметра в других методах (например, в запросах к таблице данных) и т.д.

Для отображения первых 100 символов в верхнем регистре:

<var x="GetRemoteContentAsText('http://domain.com')"/>

${x.Substring(0, 100).ToUpper()}

Перегруженный метод с использованием логина и пароля:

<var x="GetRemoteContentAsText('http://domain.com', 'username', 'password')"/>