dovecot에서 mysql 비밀번호에 공백이 있는 경우 어떤 구문을 사용해야 합니까?

dovecot에서 mysql 비밀번호에 공백이 있는 경우 어떤 구문을 사용해야 합니까?

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;
        }
[...] 

관련 정보