【问题标题】:Contact us form with Angularjs使用 Angularjs 联系我们
【发布时间】:2018-11-10 13:36:38
【问题描述】:

我编辑了帖子以获得更多详细信息,所以感谢您指出这一点:)

我想创建一个联系表单,以便用户可以直接从网站向我的电子邮件地址发送电子邮件。我遇到的问题是,无论我使用什么脚本或指南,它都不起作用。

现在我清理了我的代码,以便更容易查看是否有问题,因此我没有任何东西可以验证输入文本。

我目前在我的服务器中有 3 个文件,它们是 contact.php、contact.html 和 app.js,我在同一台服务器上创建了一个电子邮件帐户,因为它是我托管它时包的一部分。

我的控制器和html代码:

app.controller("contactController", ['$scope', '$http', function ($scope, $http) {


        $scope.formData = {

            subject: '',
            email: '',
            message: ''
        };
        console.log(formData);
        // process the form
        $scope.processForm = function () {
            $http({
                method: 'POST',
                url: 'contact.php',
                data: $scope.formData,
                headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
            })


        };


    } ]);
<div class=" container formcontainer">
        
      <form method="post">
            
            <input type="text" name="subject" class="form-control" placeholder="Subject..." ng-model="formData.subject">
            
            <input type="email" name="email" class="form-control" placeholder="Your email..." ng-model="formData.email">
         
            <textarea  rows="5" cols="50" class="form-control" placeholder="You message" ng-model="formData.message"></textarea>
           
            <button type="submit" ng-click="processForm()" class="btn btn-success btn-lg btn-block">Submit!</button>
      </form>
   </div>

还有我的 php

<?php


$post_data = file_get_contents("php://input");
$data = json_decode($post_data);



//email information
$to = "lurtze@hotmail.com";

$subject = $data['subject'];
$userEmail=$data['email'];
$message=$data['message'];



$headers = 'From: ' . $userEmail . "\r\n" .
        'Reply-To:'.$userEmail . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

//php mail function to send email on your email address
mail($to, $subject, $message, $headers);

//Email response
  echo "Thank you for contacting us!";
  }

?>

现在我在控制台记录我的代码时遇到了错误, ReferenceError: formData 未定义

我尝试做的是向 php 脚本发送一个数组,然后将信息作为电子邮件发送。

正如我之前提到的,我已经尝试了多个指南和代码 sn-ps 但无法让它工作所以我感谢我能得到的任何帮助!

【问题讨论】:

  • 将 AJAX 请求中的数据发送到服务器端 PHP 脚本,该脚本将发送电子邮件。
  • 一些代码会很好。但是您可能应该让您的 Angular 控制器在 ajax 调用中将必要的数据传递给实际发送电子邮件的服务器端 php 脚本。邮件别名和/或 hotmail 与此特定问题无关(您应该能够从您的脚本发送到任何邮件地址)。
  • 如果您再看看我的帖子,看看我做错了什么,我将不胜感激:)

标签: php html angularjs


【解决方案1】:

不要通过您的 AngularJS 应用程序发送邮件! 将您的请求发送到您的服务器,服务器将发送请求的主要内容

【讨论】:

  • 您好,我刚刚编辑了帖子,以便您查看更多详细信息,很抱歉我没有从一开始就这样做:)
【解决方案2】:
  1. 设置外发电子邮件服务器或使用服务提供商提供的 API。

  2. 设置一个 API 调用,可以通过步骤 1 中的设置发送电子邮件。

  3. 将联系表单中的请求发送到您在步骤 2 中设置的 API。

【讨论】:

    猜你喜欢
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多