1 votes

Bug Exim MySql ?

Dans un Authenticator pour une connexion smtp sortante, j'ai ceci :

remote_login:
  driver = plaintext
  public_name = LOGIN
  client_send = : user : password

Et ça marche bien.

Si je remplace le mot de passe par :

${extract{auth_pass}{${lookup{$sender_address_domain}wildlsearch{/etc/exim/smtp_auths}{$value}fail}}}

avec un ./smtp_auths

example.com: auth_pass=password

Cela fonctionne toujours.

Changez avec une recherche mysql :

${lookup mysql{SELECT users.remote_secret as secret FROM users WHERE users.domain='${quote_mysql:$sender_address_domain}'}{$value}}

J'obtiens l'erreur suivante dans le journal lors de l'envoi.

différer (-48) : Erreur interne temporaire

Mais en utilisant le débogage :

[ec2-user@ip-172-31-16-5 exim]$ sudo exim -be -Mset <message-id>
> ${extract{auth_pass}{${lookup{$sender_address_domain}wildlsearch{/etc/exim/smtp_auths}{$value}fail}}}
password
> ${lookup mysql{SELECT users.remote_secret as secret FROM users WHERE users.domain='${quote_mysql:$sender_address_domain}'}{$value}}
password
>

Il semble vraiment que ça devrait fonctionner. Quelqu'un a-t-il déjà rencontré ce problème ?

Aussi, si je change

${quote_mysql:$sender_address_domain}

avec

example.com

Cela fonctionne. Je sais donc que mysql fonctionne.

Qu'est-ce que je fais de mal ?

1voto

Amy Anuszewski Points 1228

Selon cet affichage de liste de diffusion parce que client_send est une liste, la valeur de : sont utilisés pour diviser la liste avant toute expansion, ce qui signifie qu'exim essaie de traiter les caractères suivants

${lookup mysql{SELECT users.remote_secret as secret FROM users WHERE users.domain='${quote_mysql`

comme une seule chaîne et

$sender_address_domain}'}{$value}}

comme deuxième chaîne.

Vous devrez doubler le : afin de l'échapper et de faire en sorte que la commande entière soit traitée comme une seule chaîne :

${quote_mysql::$sender_address_domain}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X