【问题标题】:Sending mail with PHP application deployed on Google App Engine使用部署在 Google App Engine 上的 PHP 应用程序发送邮件
【发布时间】:2014-07-31 16:28:12
【问题描述】:

我正在尝试从部署在 GAE 上的 PHP 应用程序发送电子邮件,但无法发送。

我的 PHP 代码:

<?php
use google\appengine\api\mail\Message;

$name=$email=$query="";

if($_SERVER["REQUEST_METHOD"]=="POST"){

   $name = $_POST["name"];
   $email = $_POST["email"];
   $query = $_POST["query"];

  require_once 'google/appengine/api/mail/Message.php';
    $mail_options = [
    "sender" => $email,
    "to" => "abc@gmail.com",
    "subject" => "Subject",
    "textBody" => $query,
];

try {
    $message = new Message($mail_options);
    $message->send();
} catch (InvalidArgumentException $e) {
    echo "not send";

}?> 

我的日志

INFO     2014-07-31 21:40:31,711 mail_stub.py:142] MailService.Send
  From: bca@gmail.com
  To: abc0@gmail.com
  Subject: Subject
  Body:
    Content-type: text/plain
    Data length: 3
INFO     2014-07-31 21:40:31,711 mail_stub.py:305] You are not currently sending out real email.  If you have sendmail installed you can use it by using the server with --enable_sendmail.

但是here 没有安装任何外部应用程序,他们只是指示使用 GAE API 发送邮件。

我该怎么办?

我的 PHP 代码有问题吗?

【问题讨论】:

  • 发件人的电子邮件地址必须是管理员。是吗?

标签: php google-app-engine email


【解决方案1】:

您收到该错误是因为您在 localhost 上运行它,如果您将其部署到您的 appengine 云并像 Paul 所说的那样将“发送自”设置为链接到该项目的管理员电子邮件,它应该可以工作。当我用 localhost 测试它时,我得到了同样的错误,但在部署时,它工作正常。

【讨论】:

  • 谢谢,有没有办法更改发件人的电子邮件?因为我想从我的表单中获取电子邮件地址并将邮件从该电子邮件地址发送到我的 ID。
  • “发件人”电子邮件肯定需要是项目的电子邮件。您仍然可以通过 POST 从表单中提取它,但您每次都必须输入相同的项目电子邮件。一个想法是,您可以将“发件人”电子邮件硬编码为您的项目电子邮件,然后将表单中的电子邮件复制到电子邮件正文甚至主题的某个位置。
猜你喜欢
  • 2019-04-22
  • 1970-01-01
  • 2019-05-18
  • 2019-05-30
  • 2023-03-06
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多