mysqlにアクセスするようにDovecotを設定しようとしていますが、mysqlパスワードに空白があるため機能しません。
driver = mysql
connect = "host=localhost dbname=postfix user=postfix password=blah bluh blih"
Thunderbird/Evoution で自分のメールボックスにアクセスしようとすると、次のエラーが発生します。
Jan 05 14:41:11 mx1 dovecot[28895]: auth: Fatal: mysql: Missing value in connect string: bluh
動作させる正しい構文が見つかりません。誰にもアイデアがありますか?
答え1
Dovecotのソースコードは、スペースを使用して接続文字列のフィールドを区切ります。
したがって、空白のないパスワードを使用することをお勧めします。
バラよりこの議論MLでは
これを参照します。鳩のソースコードの一部
static int driver_mysql_parse_connect_string(struct mysql_db *db,
const char *connect_string,
const char **error_r)
{
const char *const *args, *name, *value;
const char **field;
db->ssl_cipher = "HIGH";
db->ssl_verify_server_cert = 1;
db->connect_timeout = SQL_CONNECT_TIMEOUT_SECS;
db->read_timeout = MYSQL_DEFAULT_READ_TIMEOUT_SECS;
db->write_timeout = MYSQL_DEFAULT_WRITE_TIMEOUT_SECS;
args = t_strsplit_spaces(connect_string, " ");
for (; *args != NULL; args++) {
value = strchr(*args, '=');
if (value == NULL) {
*error_r = t_strdup_printf("Missing value in connect string: %s",
*args);
return -1;
}
[...]