Php Mail не работает в Google App Engine Flex (ошибки не отображаются) - PullRequest
0 голосов
/ 31 мая 2018

У меня есть WordPress сайт, работающий на Google App Engine flex.Я пытаюсь использовать функцию php mail () для простой контактной формы.

У меня есть такой блок:

<code>   if ( mail( $to, $subject, $message, $headers ) ) {
      //stuff
   } else {
      error_reporting(-1);
      ini_set('display_errors', 'On');
      set_error_handler("var_dump");
      var_dump(error_get_last());
      echo '<pre>';
      print_r (error_get_last());
      echo '
';}

Я пытался использовать разные $ в электронных письмах, но безуспешно.В ответ отображается сообщение об ошибке NULL.Эти настройки я использую.Я попытался использовать свою учетную запись admin @gmail и теперь переключился на appsot @ gservice.Я не вижу сообщений, связанных с почтой, зарегистрированных на приборной панели

$to = 'myemail@gmail.com';
$from = "my-project@appspot.gserviceaccount.com";
$subject = "New Application";
$message = 'test';
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: ".$from."\r\n"."X-Mailer: php";

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

эта функция почты должна работать, верно?Нужно ли редактировать мой app.yaml или php.ini?

App.yaml

runtime: php
env: flex

manual_scaling:
  instances: 1

handlers:
- url: /(.*\.(htm|html|css|js))$
  static_files: wordpress/\1
  upload: wordpress/.*\.(htm|html|css|js)$
  application_readable: true

- url: /wp-content/(.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg))$
  static_files: wordpress/wp-content/\1
  upload: wordpress/wp-content/.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)$
  application_readable: true

- url: /(.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg))$
  static_files: wordpress/\1
  upload: wordpress/.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)$
  application_readable: true

- url: /wp-includes/images/media/(.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg))$
  static_files: wordpress/wp-includes/images/media/\1
  upload: wordpress/wp-includes/images/media/.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg)$
  application_readable: true

- url: /wp-admin/(.+)
  script: wordpress/wp-admin/\1
  secure: always

- url: /wp-admin/
  script: wordpress/wp-admin/index.php
  secure: always

- url: /wp-login.php
  script: wordpress/wp-login.php
  secure: always

- url: /wp-cron.php
  script: wordpress/wp-cron.php
  login: admin

- url: /xmlrpc.php
  script: wordpress/xmlrpc.php

- url: /wp-(.+).php
  script: wordpress/wp-\1.php

- url: /(.+)?/?
  script: wordpress/index.php

beta_settings:
  cloud_sql_instances: myproject-:us-east4:my-instance

runtime_config:
  document_root: wordpress
  skip_lockdown_document_root: true

env_variables:
  WHITELIST_FUNCTIONS: escapeshellarg,escapeshellcmd,exec,pclose,popen,shell_exec,phpversion,php_uname

php.ini

extension=bcmath.so
extension=gd.so
zend_extension=opcache.so
short_open_tag=On
upload_max_filesize = 200M
google_app_engine.disable_readonly_filesystem = 1

1 Ответ

0 голосов
/ 01 июня 2018

Невозможно использовать службу App Engine Mail вне стандартной среды.Я буквально цитирую официальную документацию :

Почтовый сервис App Engine недоступен за пределами стандартной среды.Вам понадобится сторонний почтовый провайдер, такой как SendGrid , Mailgun или Mailjet для отправки электронной почты.Все эти сервисы предлагают API для отправки электронной почты из приложений, работающих где-либо.

В следующих руководствах показано, как использовать эти сервисы в гибкой среде:

Отправка электронной почты с помощью SendGrid

Отправка писем с помощью Mailgun

Отправка писем с помощью Mailjet

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...