Назад | Перейти на главную страницу

Контактная форма с ubuntu на адрес электронной почты Zoho

Мне нужна поддержка, чтобы моя конфигурация Postfix работала с моей учетной записью электронной почты Zoho. Я пытаюсь отправить сообщение из моей контактной формы в http://www.g3eo.com/#!/page_Contacts на мою учетную запись электронной почты Zoho. Для этого я настроил Postfix в своем ящике ubuntu таким образом (на основе http://emanuelesantanche.com/configuring-postfix-to-relay-email-through-zoho-mail/):

smtpd_banner = $ myhostname ESMTP $ mail_name (Ubuntu) biff = no

append_dot_mydomain = no

readme_directory = no

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
inet_protocols = all

# TLS parameters
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_header_checks = pcre:/etc/postfix/smtp_header_checks

myhostname = xxxxxxxxxx
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = xxxxxxxxxx, localhost.com, localhost
relayhost = smtp.zoho.com:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/password
#smtp_sasl_security_options =
smtp_generic_maps = hash:/etc/postfix/generic
smtp_sasl_security_options = noanonymous
smtp_always_send_ehlo = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_relay_restrictions = permit_mynetworks,permit_sasl_authenticated,defer_unauth_destination

В контактной форме моего веб-сайта все работает нормально, вы можете проверить это, отправив сообщение с открытым Firebug (нажмите F12) на вкладке «Сеть». После отправки электронного письма на вкладке ответа появляется это сообщение «письмо отправлено». Однако это сообщение не доходит до моего адреса электронной почты в моей учетной записи электронной почты Zoho. После проверки /var/log/mail.log это показывает:

4 июля 21:46:42 xxxxxxxxxx postfix / qmgr [9100]: D9B2E5E0292: from =, size = 549, nrcpt = 1 (активна очередь)

4 июля 21:46:45 xxxxxxxxxx postfix / smtp [27824]: D9B2E5E0292: to =, relay = smtp.zoho.com [165.254.168.48]: 587, delay = 114224, задержки = 114222 / 0,01 / 2,6 / 0, dsn = 4.0.0, статус = отложено (аутентификация SASL не удалась; сервер smtp.zoho.com [165.254.168.48] сказал: 535 Authentication Failed)

Я понимаю, что проблема аутентификации связана с тем, что мое сообщение могло попасть на SMTP-сервер Zoho, поэтому оно было отклонено, не уверен, что это так. Я был бы признателен, если бы кто-нибудь мог помочь понять, что здесь происходит, и как это исправить.

В моей контактной форме используются следующие файлы: - http://www.g3eo.com/extras/js/forms.js

и http://www.g3eo.com/extras/bin/MailHandler.php (увидеть ниже)

  if($_POST['name']!='nope'){
      $messageBody .= '<p>Visitor: ' . $_POST["name"] . '</p>' . "\n";
      $messageBody .= '<br>' . "\n";
  }
  if($_POST['email']!='nope'){
      $messageBody .= '<p>Email Address: ' . $_POST['email'] . '</p>' . "\n";
      $messageBody .= '<br>' . "\n";
  }else{
      $headers = '';
  }
  if($_POST['state']!='nope'){        
      $messageBody .= '<p>State: ' . $_POST['state'] . '</p>' . "\n";
      $messageBody .= '<br>' . "\n";
  }
  if($_POST['phone']!='nope'){        
      $messageBody .= '<p>Phone Number: ' . $_POST['phone'] . '</p>' . "\n";
      $messageBody .= '<br>' . "\n";
  }   
  if($_POST['fax']!='nope'){      
      $messageBody .= '<p>Fax Number: ' . $_POST['fax'] . '</p>' . "\n";
      $messageBody .= '<br>' . "\n";
  }
  if($_POST['message']!='nope'){
      $messageBody .= '<p>Message: ' . $_POST['message'] . '</p>' . "\n";
  }

  if($_POST["stripHTML"] == 'true'){
      $messageBody = strip_tags($messageBody);
  }

  try{
      if(!mail($owner_email, $subject, $messageBody, $headers)){
          throw new Exception('mail failed');
      }else{
          echo 'mail sent';
      }
  }catch(Exception $e){
      echo $e->getMessage() ."\n";
  }

РЕДАКТИРОВАТЬ №1:

после изменения /etc/postfix/password из smtp.zoho.com:587 к [smtp.zoho.com] Я получил в /var/log/mail.log:

4 июля 23:46:24 xxxxxxxxxx postfix / pickup [2926]: 8BC545E0261: uid = 33 from = 4 июля 23:46:24 xxxxxxxxxx postfix / cleanup [2933]: 8BC545E0261: message-id = <20160705044624.8BC545E0261@xxxxxxxx>

4 июля 23:46:24 xxxxxxxxxx postfix / qmgr [2927]: 8BC545E0261: from =, size = 588, nrcpt = 1 (очередь активна)

4 июля 23:46:26 xxxxxxxxxx postfix / smtp [2930]: 8BC545E0261: to =, relay = smtp.zoho.com [165.254.168.48]: 587, delay = 2.1, delay = 0.13 / 0 / 1.8 / 0.16, dsn = 5.5.1, status = bounced (хост smtp.zoho.com [165.254.168.48] сказал: 530 5.5.1 Требуется аутентификация. (В ответ на команду MAIL FROM))

4 июля 23:46:27 xxxxxxxxxx постфикс / очистка [2933]: 098835E026E: message-id = <20160705044627.098835E026E@xxxxxxxxxx>

4 июля 23:46:27 xxxxxxxxxx postfix / bounce [2932]: 8BC545E0261: уведомление о недоставке отправителя: 098835E026E

4 июля 23:46:27 xxxxxxxxxx postfix / qmgr [2927]: 098835E026E: from = <>, size = 2494, nrcpt = 1 (очередь активна)

4 июля 23:46:27 xxxxxxxxxx postfix / qmgr [2927]: 8BC545E0261: удалено

4 июля 23:46:27 xxxxxxxxxx postfix / local [2934]: 098835E026E: to =, relay = local, delay = 0.09, delay = 0.05 / 0/0 / 0.04, dsn = 2.0.0, status = sent (доставлено в почтовый ящик)

4 июля 23:46:27 xxxxxxxxxx postfix / qmgr [2927]: 098835E026E: удалено

является 587 проблема здесь?

Решено !, вот решение:

Я был в /etc/postfix/smtp_header_checks:

/^From:.*/ REPLACE From: LOCALHOST System <info@g3eo.com>;

и теперь у меня есть:

/^From:.*/ REPLACE From:info@g3eo.com

проверьте, что мне пришлось удалить точку с запятой в конце, а также всю "LOCALHOST SYTEM" плюс пробелы, и все! надеюсь, это поможет кому-то еще, ура!