Ich habe vor Kurzem einen Mailserver eingerichtet, der aus postfix
und besteht dovecot
. Gestern habe ich nginx
und roundcube
hinzugefügt. SPF-, DKIM-, DMARC- und rDNS-Einträge sind alle fertig. Gmail betrachtet meine E-Mails als gültig und liefert sie in meinen Posteingang. Alles funktioniert. Bis auf eine kleine nervige Sache.
Wenn ich den integrierten MUA von Android oder andere MUAs verwende, ist immer noch alles in Ordnung. Das Problem beginnt, wenn ich E-Mails mit Roundcube senden möchte. Die E-Mail wird zwar immer noch korrekt überprüft und zugestellt, aber ohne Betreff. Irgendwie verliert Roundcube das Betrefffeld und sendet meine E-Mails ohne Betreff.
Ich habe 7 Stunden lang nach einer Antwort gesucht, aber es scheint, als wäre ich die einzige Person auf der Welt, die dieses Problem hat. Das lässt mich glauben, dass etwas mit meinem Server oder meinen Konfigurationen oder so nicht stimmt, aber ich habe alle meine Konfigurationen viermal überprüft und bin immer noch ratlos.
Jede Hilfe ist sehr hilfreich. Vielen Dank im Voraus für Ihre Zeit.
Mein Mailserver befindet sich auf einer OpenVZ-Box mit 768 MB RAM und läuft unter CentOS 7 Minimal. Postfix-Version: 2.10.1 Dovecot-Version: 2.2.10 Roundcube-Version: 1.1.0
Meine postconf -n
Ausgabe:
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
Mein Roundcube-Konfigurationsauszug unter 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;
Antwort1
Ich habe die Lösung zu meiner eigenen Frage gefunden.
Nachfolgend finden Sie die Zeilen 507-513 aus program/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);
}
Dies ist eine der beiden Stellen, an denen $headers['Subject']
Variablen erwähnt werden. Die andere ist Zeile 196, in der die Variable festgelegt wird.
Da weder ich noch meine Kunden etwas mit asiatischen Schriftzeichen zu tun haben, habe ich beschlossen, diesen Codeblock auszukommentieren und zu sehen, was passiert, und voilà! Die Themen begannen zu funktionieren. Es scheint, dass Roundcube einen seltsamen Fehler hat. Ich hoffe, dass dies irgendwann jemandem helfen wird.