> $ printf 't2@dracon753.ru\0t2@dracon753.ru\0759' | od -t x1
> 0000000 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 00
> 0000020 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 3d
> 0000040 39
> 0000041 Сам бы разницу в дампах посмотрел, да? Вот тут д.б.бы быть 00, а его нет.
> $ printf 't2@dracon753.ru\0t2@dracon753.ru\00759' | od -t x1
> 0000000 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 00
> 0000020 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 07
> 0000040 35 39
> 0000042
И тут нет.
> $ printf 't2@dracon753.ru\0t2@dracon753.ru\000759' | od -vt x1
> 0000000 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 00
> 0000020 74 32 40 64 72 61 63 6f 6e 37 35 33 2e 72 75 00
> 0000040 37 35 39
> 0000043
> $ _
А тут есть. И цифры пароля 37 35 39 в трёх примерах "разные".
> $ printf 't2@dracon753.ru\0t2@dracon753.ru\000759' | recode ../b64
Рассказываю: \00075 парсится (printf-ом -- почему спроси Кернигана), как байт-0 (_восьмеричное число 000), потом символы "7" и "5". Однако же твоё изначальное \0759 парсится как символ "=" (hex 3d, восьм. 075), за ним символ "9".
И да, dovecot (или кто там) на отсутствующий второй ноль говорит -- Invalid input.
$subj. Уже не так интересно, магия умерла.