Не удается войти на внешний сервер IMAP / POP3

Я установил Postfix, Dovecot и MySQL с помощью этого руководства ( https://www.linode.com/docs/email/postfix/troubleshooting-problems-with -postfix-dovecot-and-mysql / ).

Когда я выполняю следующую команду, я получаю следующий ответ:

$ openssl s_client -connect mail.domain.com:993

* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.

Я могу войти в свои виртуальные учетные записи через консоль, но когда я использую этот PHP-скрипт не работает (страница продолжает загружаться).

<?php 
    $mbox = imap_open("{mail.domain.com:993}", "user@domain.com", "password");
?>

Когда я запускаю команду dovecot -n, я получаю следующий результат:

$ dovecot -n

# 2.2.22 (fe789d2): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.13 (7b14904)
# OS: Linux 4.4.0-130-generic x86_64 Ubuntu 16.04.3 LTS
auth_debug = yes
auth_verbose = yes
log_path = /var/log/dovecot.log
mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_privileged_group = mail
namespace inbox {
  inbox = yes
  location =
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix =
}
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
protocols = imap pop3 lmtp
service auth-worker {
  user = vmail
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0666
    user = postfix
  }
  unix_listener auth-userdb {
    mode = 0600
    user = vmail
  }
  user = dovecot
}
service imap-login {
  inet_listener imap {
    port = 0
  }
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 0
  }
}
ssl = required
ssl_cert = </etc/dovecot/private/dovecot.crt
ssl_key = </etc/dovecot/private/dovecot.key
userdb {
  args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
  driver = static
}

Я использую межсетевой экран ufw.

$ ufw status

Status: active

To                         Action      From
--                         ------      ----
Apache Full                ALLOW       Anywhere
993                        ALLOW       Anywhere
995                        ALLOW       Anywhere
587                        ALLOW       Anywhere
OpenSSH                    ALLOW       Anywhere
Dovecot POP3               ALLOW       Anywhere
Dovecot Secure IMAP        ALLOW       Anywhere
Dovecot Secure POP3        ALLOW       Anywhere
Postfix                    ALLOW       Anywhere
Postfix SMTPS              ALLOW       Anywhere
Postfix Submission         ALLOW       Anywhere
Apache Full (v6)           ALLOW       Anywhere (v6)
993 (v6)                   ALLOW       Anywhere (v6)
995 (v6)                   ALLOW       Anywhere (v6)
587 (v6)                   ALLOW       Anywhere (v6)
OpenSSH (v6)               ALLOW       Anywhere (v6)
Dovecot POP3 (v6)          ALLOW       Anywhere (v6)
Dovecot Secure IMAP (v6)   ALLOW       Anywhere (v6)
Dovecot Secure POP3 (v6)   ALLOW       Anywhere (v6)
Postfix (v6)               ALLOW       Anywhere (v6)
Postfix SMTPS (v6)         ALLOW       Anywhere (v6)
Postfix Submission (v6)    ALLOW       Anywhere (v6)

Это межсетевой экран проблема? Похоже, я могу подключиться только с локального хоста, а не с удаленного.

Заранее спасибо.

PS: если вам нужна дополнительная информация, я буду рад поделиться. Но я не знаю точно, какая информация вам нужна для решения этой проблемы.

Изменить: мой SMTP-сервер также не работает. Я тестировал его с помощью этого ( https://www.wormly.com/test-smtp-server ) инструмента.

Вывод:

Resolving hostname...
Connecting...
Connection: opening to mail.domain.com:25, timeout=300, options=array (
                 )
Connection: opened
SERVER -> CLIENT: 220 mail.domain.com ESMTP Postfix (Ubuntu)
CLIENT -> SERVER: EHLO tools.wormly.com
SERVER -> CLIENT: 250-mail.domain.com
                 250-PIPELINING
                 250-SIZE 10240000
                 250-VRFY
                 250-ETRN
                 250-STARTTLS
                 250-ENHANCEDSTATUSCODES
                 250-8BITMIME
                 250 DSN
CLIENT -> SERVER: STARTTLS
SERVER -> CLIENT: 454 4.7.0 TLS not available due to local problem
SMTP ERROR: STARTTLS command failed: 454 4.7.0 TLS not available due to local problem
2018-07-07 17:06:08 SMTP Error: Could not connect to SMTP host.
CLIENT -> SERVER: QUIT
SERVER -> CLIENT: 221 2.0.0 Bye
Connection: closed
2018-07-07 17:06:08 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Message sending failed.
0
задан 7 July 2018 в 20:07
1 ответ

Обычно вы imap_open () поток IMAP в почтовый ящик,ничего не делайте с ним и оставьте его открытым без imap_close () . Поскольку печатать нечего, но сценарий еще не завершен, ожидается загрузка пустой страницы . Вы, вероятно, можете подтвердить это из mail.log , показывающего соединение. После imap_open () попробуйте, например, это из примера № 2:

 $ folder = imap_listmailbox ($ mbox, "{imap.example.org:143}", "*");

если ($ папки == false) {
  echo "Сбой вызова 
\ n"; } else { foreach ($ папки как $ val) { echo $ val. «
\ n»; } } imap_close ($ mbox); ?>

Также открывается SMTP-соединение из последнего теста и закрывается после STARTTLS . Это определенно не брандмауэр, а проблема конфигурации Postfix TLS .

0
ответ дан 5 December 2019 в 05:40

Теги

Похожие вопросы