URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 97980
[ Назад ]

Исходное сообщение
"Как победить в postfix lookup ошибку Illegal mix of collations?"

Отправлено КриоМух , 30-Июн-24 19:35 
Добрый день, Товарищи!

Прошу совета. Почтовик у меня, стандартный postfix,mysql,dovecot, freebsd и всё такое. Всё работает нормально.
На днях видимо настроили как-то коряво перенаправление писем с яндекса на адрес почтовый на этом сервере, и этот адрес КУДА должны идти письма - написали коряво, видимо там символы русские добавили или ещё что. В логе это выглядит так:


Jun 30 21:12:14 warning: mysql:/usr/local/etc/postfix/mysql/virtual_alias_maps.cf: query failed: Illegal mix of collations (latin1_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '='
Jun 30 21:12:14 mx postfix/smtpd[19]: warning: mysql:/usr/local/etc/postfix/mysql/virtual_alias_maps.cf lookup error for "�M-^Aeo@mydomain.ru"
Jun 30 21:12:14 mx postfix/smtpd[19]: NOQUEUE: reject: RCPT from forward501b.mail.yandex.net[178.154.239.145]: 451 4.3.0 <�M-^Aeo@mydomain.ru>: Temporary lookup failure; from=<yandex-address@yandex.ru> to=<�M-^Aeo@mydomain.ru> proto=ESMTP helo=<forward501b.mail.yandex.net>

Т.е. там насколько я понимаю пересылку настроили, подтверждение на указанный адрес попыталось выслаться и вот оно никак дойти не может, почтовик нормального ответа яндексу дать не может, т.к. при проверке адреса назначения у него SQL ошибка из-за некорректных символов проявляется.
В целом-то ничего фатального, я об этом уже сообщил и там адрес поправят, мне интересно - как можно сделать, чтобы мой почтовик не валился в SQL ошибку, а отвечал корректно, что адреса такого нет. Экранирование там как-то включить или ещё что-то может?

Вот настройка lookup'а в MySQL, тоже стандартная:

hosts   = unix:/var/mysql/mysql.sock
user    = postuser
password= PASS
dbname  = postdb

query   = SELECT aa.goto FROM alias aa JOIN domain bb ON bb.domain=aa.domain WHERE aa.address='%s' AND aa.active='1'



Содержание

Сообщения в этом обсуждении
"Как победить в postfix lookup ошибку Illegal mix of collations?"
Отправлено Pahanivo пробегал , 30-Июн-24 22:49 
Анекдот про связиста в армии и автомат знаешь?
У меня уходит - проблема где-то у вас! (R)

ПыСы: Тебя не смущает что оно с ямыла ушло? Загуглить ошибку пробовал? Кодировки в своей базе проверял?


"Как победить в postfix lookup ошибку Illegal mix of collations?"
Отправлено pavel2000 , 08-Июл-24 13:27 
>[оверквотинг удален]
> поправят, мне интересно - как можно сделать, чтобы мой почтовик не
> валился в SQL ошибку, а отвечал корректно, что адреса такого нет.
> Экранирование там как-то включить или ещё что-то может?
> Вот настройка lookup'а в MySQL, тоже стандартная:
>
hosts   = unix:/var/mysql/mysql.sock 
> user    = postuser
> password= PASS
> dbname  = postdb
> query   = SELECT aa.goto FROM alias aa JOIN domain bb
> ON bb.domain=aa.domain WHERE aa.address='%s' AND aa.active='1'

WHERE aa.address= CONVERT( _utf8 '%s' USING latin1 )