如何在不使用电子邮件编辑器插件的情况下从离子应用程序发送电子邮件

时间:2016-02-28 19:37:59

标签: javascript php ajax

我正在尝试从我的离子应用程序发送一封电子邮件,使用Ajax调用我上传到服务器上的PHP代码。

Ajax调用代码:

$scope.forget = function(){

      $http({

        method: 'POST',

        url: 'server_name/mail.php',

        data: { mailTo: 'name@gmail.com', msg: 'hello!', sub: 'hey' }
      }).then(function successCallback(response) {

          alert(response.value+"msg sent!");
        },
        function errorCallback(response) {

          alert(response.value+"error with sending msg");
        });
    };

mail.php

<?php 
    $_SERVER["PHP_SELF"];
    $to = $_POST["mailTo"];
    $txt = $_POST["msg"];
    $subject = $_POST["sub"];
    $headers = "From: emailadd@gmail.com";
    echo $subject;
    $flgchk = mail ($to, $subject, $txt, $headers); 

    echo $flgchk;
    if($flgchk){

      echo "<script>alert('Thank you for submiting your Details..!')</script>";
     }
    else{

      echo "<script>alert('Error Occured Please Resend Details..!')</script>"; 
    }

?>

但是我无法发送详细信息。它将进入错误回调响应并显示发送msg时出错。我可以帮忙解决这个问题吗?或者有没有其他方法可以通过按钮点击发送电子邮件?谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试过将完整网址(包括主机和协议)输入到网址属性? 我问,因为看起来你正在使用离子用于混合应用程序开发。

如果您的应用是混合移动应用或托管在其他域中,请确保您的PHP服务器还启用了CORS(跨源资源共享)。

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, OPTIONS');

将这两行放在您的PHP代码之上,这样就可以让您的服务器从跨域获取请求。

相关问题