O Roundcube envia e-mails sem assunto

5

Eu configurei recentemente um servidor de e-mail que consiste em postfix e dovecot . Ontem adicionei nginx e roundcube ao mix. Registros SPF, DKIM, DMARC, rDNS são feitos. O Gmail considera meu e-mail como válido e o entrega na minha caixa de entrada. Tudo está funcionando. Exceto uma coisinha chata.

Quando uso o MUA incorporado do Android ou outro MUA, tudo ainda está bem. O problema começa quando eu quero enviar e-mail usando roundcube. O correio ainda é verificado e entregue corretamente, mas sem assunto. De alguma forma, o roundcube está perdendo o campo do assunto e enviando meus e-mails sem o assunto.

Eu tenho procurado por uma resposta por 7 horas seguidas, no entanto, parece que eu sou a única pessoa no mundo que está enfrentando esse problema. Isso me faz pensar que algo está errado com o meu servidor ou configurações ou algo assim, mas eu verifiquei todas as minhas configurações e ainda estou sem noção.

Qualquer ajuda será muito útil. Agradecemos antecipadamente pelo seu tempo.

Meu servidor de e-mail está em uma caixa OpenVZ com 768MB de RAM, rodando o CentOS 7 Mínimo. Versão do postfix: 2.10.1 Versão Dovecot: 2.2.10 Versão do Roundcube: 1.1.0

Minha postconf -n output:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
disable_vrfy_command = yes
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = localhost
myhostname = mail.example.com
newaliases_path = /usr/bin/newaliases.postfix
non_smtpd_milters = unix:/var/run/opendkim/opendkim.sock
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_delay_reject = no
smtpd_helo_required = yes
smtpd_helo_restrictions = reject_unknown_helo_hostname, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname
smtpd_milters = unix:/var/run/opendkim/opendkim.sock
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pem
smtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pem
smtpd_use_tls = yes
strict_rfc821_envelopes = yes
unknown_local_recipient_reject_code = 550
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_transport = lmtp:unix:private/dovecot-lmtp

Meu trecho de configuração do Roundcube em config/config.inc.php :

$config['debug_level'] = 5;
$config['db_dsnw'] = 'mysql://user:pass@localhost/database';
$config['default_host'] = 'tls://localhost';
$config['default_port'] = 993;
$config['smtp_server'] = 'tls://localhost';
$config['smtp_port'] = 587;
$config['ip_check'] = true;
$config['identities_level'] = 3;
$config['des_key'] = 'some key';
$config['mime_types'] = '/usr/share/nginx/html/roundcube/mime.types';
$config['preview_pane'] = true;
    
por Bugra Koc 27.02.2015 / 07:53

1 resposta

1

Encontrei a solução para minha própria pergunta.

Abaixo estão as linhas 507-513 do programa / steps / mail / sendmail.inc.

// encoding subject header with mb_encode provides better results with asian characters
if (function_exists('mb_encode_mimeheader')) {
    mb_internal_encoding($message_charset);
    $headers['Subject'] = mb_encode_mimeheader($headers['Subject'],
        $message_charset, 'Q', "\r\n", 8);
    mb_internal_encoding(RCUBE_CHARSET);
}

Este é um dos dois locais que mencionam a variável $headers['Subject'] . O outro é a linha 196 que define a variável.

Como nem eu nem meus clientes nada têm a ver com personagens asiáticos, decidi comentar este bloco de código e ver o que acontece, e voila! Assuntos começaram a trabalhar. Parece roundcube tem um bug estranho. Espero que isso ajude alguém algum dia.

    
por 01.03.2015 / 00:21