Шифровать часть ссылки

Advanced Mass Sender tech support

Модератор: Max Terentiev

Ответить
Сообщение
Автор
configrate
Сообщения: 11
Зарегистрирован: Ср июл 22, 2020 9:18 am

Шифровать часть ссылки

#1 Сообщение configrate » Вс авг 02, 2020 8:07 am

Добрый.
Если в шаблоне Html вставлена ссылка типа
domain.ru/?redirect=domain2.ru/?id=[%%FEmail%%]
Можно как-то с помощью макросов или еще как за кодить часть что идет после redirect= ?
Т.е. - domain2.ru/?id=[%%FEmail%%]

configrate
Сообщения: 11
Зарегистрирован: Ср июл 22, 2020 9:18 am

Re: Шифровать часть ссылки

#2 Сообщение configrate » Вс авг 02, 2020 9:17 am

В смысле в qp, например..
В base64 вроде у людей стало ссылку убивать..

Аватара пользователя
Max Terentiev
Admin
Сообщения: 1937
Зарегистрирован: Сб мар 27, 2004 12:01 am
Откуда: Санкт-Петербург
Контактная информация:

Re: Шифровать часть ссылки

#3 Сообщение Max Terentiev » Вт авг 04, 2020 2:58 pm

Добрый день,

На данный момент есть следующие варианты решения:

1. Использовать "отслеживаемые" ссылки, в этом случае редирект будет делать скрипт amsweb.php, при этом параметры ссылки будут зашифрованы и скрыты. Сам скрипт лучше переименовать из amsweb.php во что-то более нейтральное типа click.php, script.php и т.д. чтобы не банили по названию скрипта.

2. Можно отдавать контент (html код) письма из своего php скрипта, в AMS он будет подгружаться через макрос WMessageBodyFromURL. В этом случае вы можете в своем скрипте зашифровать любые данные как вам угодно и отдать программе готовый
результат.

configrate
Сообщения: 11
Зарегистрирован: Ср июл 22, 2020 9:18 am

Re: Шифровать часть ссылки

#4 Сообщение configrate » Ср авг 05, 2020 4:07 am

Спасибо за ответ.
К сожалению первый вариант не подходит, так как нужно редиректить с определенных доменов , где я не смогу разместить скрипт отслеживания..
А второй - идея хорошая , но если я буду подгружать в тело письма уже закодированную строку, то макрос [%%FEmail%%] не будет обрабатываться в ams.

Я сейчас ищу решения под javascript, чтоб на лету в теле письма сразу шифровала нужную строку..

configrate
Сообщения: 11
Зарегистрирован: Ср июл 22, 2020 9:18 am

Re: Шифровать часть ссылки

#5 Сообщение configrate » Ср авг 05, 2020 6:08 am

Если в шаблон письма добавить вот так:
<script>

function base64encode(str) {

var b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg'+
'hijklmnopqrstuvwxyz0123456789+/=';
var b64encoded = '';
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;

for (var i=0; i<str.length;) {
chr1 = str.charCodeAt(i++);
chr2 = str.charCodeAt(i++);
chr3 = str.charCodeAt(i++);

enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);

enc3 = isNaN(chr2) ? 64:(((chr2 & 15) << 2) | (chr3 >> 6));
enc4 = isNaN(chr3) ? 64:(chr3 & 63);

b64encoded += b64chars.charAt(enc1) + b64chars.charAt(enc2) +
b64chars.charAt(enc3) + b64chars.charAt(enc4);
}
return b64encoded;
}

</script>

<script>

document.writeln(base64encode ('ManHunter / PCL'));
</script>
То в предпросмотре в ams - зашифрованная строка выводится в письме, но если посылаю это письмо , в том же gmail строки уже нет..(

configrate
Сообщения: 11
Зарегистрирован: Ср июл 22, 2020 9:18 am

Re: Шифровать часть ссылки

#6 Сообщение configrate » Ср авг 05, 2020 6:12 am

Не срабатывает почему то скрипт, а просто посылается сам код.
Если в gmail - показать оригинал письма, то
<script>=09=09=09=09=09=09=09

function base64encode(str) {

var b64chars =3D 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg'+
'hijklmnopqrstuvwxyz0123456789+/=3D';
var b64encoded =3D '';
var chr1, chr2, chr3;
var enc1, enc2, enc3, enc4;
=20
for (var i=3D0; i<str.length;) {
chr1 =3D str.charCodeAt(i++);
chr2 =3D str.charCodeAt(i++);
chr3 =3D str.charCodeAt(i++);
=20
enc1 =3D chr1 >> 2;
enc2 =3D ((chr1 & 3) << 4) | (chr2 >> 4);
=20
enc3 =3D isNaN(chr2) ? 64:(((chr2 & 15) << 2) | (chr3 >> 6));
enc4 =3D isNaN(chr3) ? 64:(chr3 & 63);
=20
b64encoded +=3D b64chars.charAt(enc1) + b64chars.charAt(enc2) +
b64chars.charAt(enc3) + b64chars.charAt(enc4);
}
return b64encoded;
}
=09=09=09=09=09=09=09
</script>=09=09=09=09=09=09=09
=09=09=09=09=09=09=09
=09<script>

document.writeln(base64encode ('ManHunter / PCL'));=09=09
</script>=09=09=09=09=09=09=09=09=09=09=09=09

</center>

configrate
Сообщения: 11
Зарегистрирован: Ср июл 22, 2020 9:18 am

Re: Шифровать часть ссылки

#7 Сообщение configrate » Ср авг 05, 2020 7:14 am

Т.е. получается, нужно чтобы сначало скрипт сработал, а потом уже отсылать..
Но если загружать уже закодированную часть ссылки из вне в тело письма - то как я говорил не будет срабатывать макрос - [%%FEmail%%]
Короче тупик..
Не знаю как делать теперь..

Аватара пользователя
Max Terentiev
Admin
Сообщения: 1937
Зарегистрирован: Сб мар 27, 2004 12:01 am
Откуда: Санкт-Петербург
Контактная информация:

Re: Шифровать часть ссылки

#8 Сообщение Max Terentiev » Пт авг 07, 2020 8:03 am

Из справки (раздел Рандомизация тела и заголовков писем):
6. Использование параметров $_[GET] в вашем генераторе контента
При вызове ссылок из макросов [%%WMessageBodyFromURL%%],[%%WMessageHeaderFromURL%%],[%%WTestFromURL%%],[%%WFullMessageBodyFromURL%%] AMS автоматически добавляет к ссылке параметры с данными о том, от кого и для кого формируется письмо.

Например, мы вставили в письмо макрос [%%WMessageBodyFromURL,http://localhost/GetBody.php, 1%%]. Перед вызовом ссылки http://localhost/GetBody.php к ней будут добавлены данные об отправителе и получателе, для которого формируется письмо. Т.е. фактически ссылка будет вызвана в таком виде:

http://localhost/GetBody.php?Send_Metho ... _Name=Ivan Ivanov&Sender_Email=ivan@mail.ru&Sender_ReplyToEmail=ivan-reply@mail.ru&Sender_Organization=Ivan Company&MailList_ID=125&MailList_Email=sergei@mail.ru&MailList_FullName=Sergei Sergeev

Как видите, после GetBody.php? передается инофрмация о режиме рассылки, отправителе и получателе. Разберем передаваемые параметры:

Send_Method - метод рассылки, возможные значения To, Cc, Bcc, PersonalCopy.
Sender_Name - имя отправителя из Учетной записи отправителя.
Sender_Email - email отправителя из поля Обратный email Учетной записи отправителя.
Sender_ReplyToEmail - reply-to адрес из Учетной записи отправителя.
Sender_Organization - содержимое поле Организация из Учетной записи Отправителя.
ProxyIP - IP адрес прокси, через который будет отправлено письмо (если включена рассылка через прокси).
ProxyPort - порт прокси, через который будет отправлено письмо (если включена рассылка через прокси).
ProxyLogin - логин прокси, через который будет отправлено письмо (если включена рассылка через прокси)
ProxyHost - имя хоста прокси т.е. содержимое PTR (Reverse DNS) записи, привязанной к IP прокси, через который будет отправлено письмо (если включена рассылка через прокси)
SmtpSeverName - имя Smtp сервера, через которое будет отправлено письмо (если режим рассылки через smtp релеи).
SmtpLogin - логин Smtp сервера, через которое будет отправлено письмо (если режим рассылки через smtp релеи).

Далее идет содержимое всех полей списка рассылки для контакта, для которого формируется письмо. Поля передаются в виде пар значений MailList_ИмяПоля=значение поля. Например, email получателя будет передан в параметре с названием MailList_Email.

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

Пример использования параметров внутри PHP скрита:

<?php
echo "Это тело письма сформировано для получателя: ".$_GET["MailList_FullName"];
?>
Конструкция $_GET["MailList_FullName"] вернет значение параметра MailList_FullName в котором будет содержимое поля FullName списка рассылки.
Таким образом, чтобы закодировать email вам нужно сделать base64encode($_GET["MailList_Email"])

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 35 гостей