如何通过托管在 Azure 上的 PHP 联系表接收电子邮件?

How to receive emails via PHP contact form hosted on azure?

我没有收到来自我网站上的联系表单的电子邮件,不知道如何解决这个问题?该网站托管在 Microsoft Azure 上。我将如何解决这个问题?

我目前的代码是:

<?php
if (isset($_POST['contact_name']) && isset($_POST['contact_email']) 
&& isset($_POST['contact_text'])) {
$contact_name = $_POST['contact_name'];
$contact_email = $_POST['contact_email'];
$contact_text = $_POST['contact_text'];
if(!empty($contact_name) && !empty($contact_email) && !empty($contact_text)) {

    $to = 'email@domain.com';
    $subject = 'Message from website.';
    $body = $contact_name."\n".$contact_text;
    $headers = 'From: ' .$contact_email;

    if(@mail('email@domain.com', $contact_text, $body, $headers)) {
        echo 'Thank you';
    } else {
        echo 'error.';
    }
}
else {
    echo 'You're missing something';
     }
   }
  ?>

<form action="" method="POST">
    Name: <input type="text" name="contact_name">
    Email: <input type="text" name="contact_email">
Message: <textarea name="contact_text" rows="5" cols="20"></textarea>
<input type="submit" value="Send">

</form>

谢谢。

Azure Web Apps Service 不提供 STMP 服务器,而且我们也无权在其上构建一个,因此如果您删除 @,您可能会遇到如下异常:Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set().

要从 Azure Web Apps 上的 PHP 应用程序发送邮件,您可以利用其他一些第三部分邮件服务,例如 SendGrid。

您可以使用 Azure 管理门户轻松创建 SendGrid 帐户。详情请参考https://azure.microsoft.com/en-us/documentation/articles/store-sendgrid-php-how-to-send-email/

如有任何疑问,请随时告诉我。