首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP + angular4 - 404找不到问题

PHP + angular4 - 404找不到问题
EN

Stack Overflow用户
提问于 2018-05-10 10:17:20
回答 1查看 285关注 0票数 0

我正在尝试使用PHPform服务发送电子邮件,正在检索数据,但服务器返回404,因为我对PHP还不熟悉,所以找不到我缺少的东西。有人能帮我吗?

我一直在搜索angular4 + phpmailer,并遵循了一些教程,实际上,我并不认为这是phpcode本身。

服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    import { Injectable } from '@angular/core';
    import { Http } from '@angular/http';
    import { Observable } from 'rxjs/Observable';
    import { Resolve } from '@angular/router';
    import 'rxjs/add/operator/map';
    import 'rxjs/add/operator/catch';

    export interface IMessage {
      nome?: string,
      email?: string,
      assunto?:string, 
      mensagem?: string
    }

    @Injectable()
    export class AppService {
      private emailUrl = '../../../api/sendemail.php';

      constructor(private http: Http) {

      }

      sendEmail(message: IMessage): Observable<IMessage> | any {
        return this.http.post(this.emailUrl, message)
          .map(response => {
            console.log('Email enviado com sucesso', response);
            return response;
          })
          .catch(error => {
            console.log('Houve uma falha na solicitação de serviço', error);
            return Observable.throw(error)
          })
      }
    }

Contact.component.ts

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    import { Component, OnInit } from '@angular/core';
    import { AppService, IMessage } from '../app.service';

    @Component({
      selector: 'app-contact',
      templateUrl: './contact.component.html',
      styleUrls: ['./contact.component.scss'],
      providers: [AppService]
    })
    export class ContactComponent implements OnInit {

      message: IMessage = {};

      constructor(private appService: AppService) { }


      sendEmail(message:IMessage){
        this.appService.sendEmail(message).subscribe(res => {
        }, error => {
          console.log('ContactComponent Error', error);
        });
      }

      ngOnInit() {

        function Toggle(){
          var faq = document.querySelectorAll('.faq-box');
          for(var i = 0 ; i < faq.length ; i++ ){
            faq[i].addEventListener('click',function(){
              this.classList.toggle('active');
            })
          }
        }

        Toggle();
      }

    }

PHP

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
            <?php
            use PHPMailer\PHPMailer\PHPMailer;
            use PHPMailer\PHPMailer\Exception;

            require 'includes/phpmailer/src/Exception.php';
            require 'includes/phpmailer/src/PHPMailer.php';
            require 'includes/phpmailer/src/SMTP.php';


            if( !isset( $_POST['nome'] ) || !isset( $_POST['email'] ) || !isset( $_POST['mensagem'] ) || !isset( $_POST['assunto'] ) ) {

            }

            $pnome = $_POST['nome'];
            $pemail = $_POST['email'];
            $passunto = $_POST['assunto'];
            $pmsg = $_POST['mensagem'];

            $to = "contato@corpomaisleve.com.br";
            $bcc = "";
            $subject = 'Formulário de Contato Corpo Leve - ' . $pnome;
            $body = $pmsg;

            $body = "
            Nome: $pnome
            <br>assunto: $passunto
            <br>
            <br>Mensagem:
            <p>
                $pmsg
            </p>
            ";

            //PHPMailer Object
            $mail = new PHPMailer;

            //From email address and name
            $mail->From = $pemail;
            $mail->FromName = $pnome;

            //To address and name
            $mail->addAddress($to);
            //$mail->addAddress("recepient1@example.com"); //Recipient name is optional

            //Address to which recipient will reply
            $mail->addReplyTo($pemail);

            //CC and BCC
            // $mail->addCC("cc@example.com");
            $mail->addBCC($bcc);

            //Send HTML or Plain Text email
            $mail->isHTML(true);

            $mail->Subject = $subject;
            $mail->Body = $body;
            $mail->AltBody = $body;

            $retorno;

            if(!$mail->send()) 
            {
                $retorno = "Problema";
                echo ":" . $mail->ErrorInfo;
            } 
            else 
            {
                $retorno = "E-mail enviado com sucesso. Você será redirecionado em 3 segundos";
                header( "refresh:3;url=index.php" );
            }
            /*
            $to = "edgar@bulbcriacoes.com.br";
            $subject = 'Formulário de Contato B&F Assessoria - ' . $pnome;
            $body = $pmsg;

            $body = `
            Nome: $pnome
            <br>assunto: $passunto
            <br>
            <br>Mensagem:
            <p>
                $pmsg
            </p>
            `;
            $headers = 'From: ' . $pnome ."\r\n";
            $headers .= 'Reply-To: ' . $pemail ."\r\n";
            $headers .= 'Return-Path: ' . $pemail ."\r\n";
            $headers .= 'X-Mailer: PHP5'."\n";
            $headers .= 'MIME-Version: 1.0'."\n";
            $headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";

            $retorno;

            try {
                if( mail($to, $subject, $body, $headers) ) {
                    header( "refresh:5;url=wherever.php" );
                    $retorno =  "E-mail Enviado com sucesso. Em 3 segundos você será redirecionado, obrigado por entrar em contato!";  
                }

            } catch( Exception $e ) {
                print_r( "Problema:" . e );
            }*/
            ?>
            <!DOCTYPE html>
            <html lang="en">
                <head>
                <meta charset="UTF-8">
                <title>Corpo Leve - E-mail enviado</title>
                <body>
                    <?php
                    echo $retorno;
                    ?>
                </body>
            </html>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-10 10:24:07

您必须运行web服务器才能运行PHP脚本。WAMP XAMP或任何web服务器。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private emailUrl = '../../../api/sendemail.php';

这里的问题是URL。emailURL是在角位置找到PHP脚本,所以它给你的是404。

您需要在web服务器中部署PHP文件,然后可以通过URL访问它。

示例:http://localhost/phpmailer/api/sendemail.php

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50279156

复制
相关文章
flexbox布局指南
伸缩容器是display的计算值为flex或inline-flex的元素,其流内孩子就是伸缩项(flex item)
ayqy贾杰
2019/06/12
1.1K0
flexbox布局指南
Flexbox布局指南
Flexbox布局概念 Flexbox布局( Flexible Box 或CSS3 弹性布局),是CSS3中的一种新的布局模式,是可以自动调整子元素的高和宽,来很好的填充任何不同屏幕大小的显示设备中的可用显示空间,收缩内容防止内容溢出,确保元素拥有恰当的行为的布局方式。使用Flexbox来布局更容易,可以使用更少的代码,更简单的方式实现更复杂的布局,例如对齐方式,排列方向,排列顺序(这也是Flexbox布局的核心能力所在),弹性盒中的子元素通过在各个方向放置就可以以弹性的尺寸适应父元素的显示区域。由于子元素
xiangzhihong
2018/02/05
1.8K0
Flexbox布局指南
动态内容的等高布局实现
首先不同内容的固定高度等高布局没有任何难度,本文讲的不是这种。本文讲的是,不同行级或者浮动元素具有不定高度时,将其他元素的高度填充为最大高度元素的高度这种场景。
RobinsonZhang
2018/08/28
9580
Flexbox布局指南
本文翻译来自https://css-tricks.com/snippets/css/a-guide-to-flexbox/
Helloted
2022/06/07
1.3K0
Flexbox布局指南
写给 Android 开发的小程序布局指南,Flex 布局!
最近在做小程序,验证一些方向,开发效率确实很快,就是各种微信的审核有点费劲,但是总归是有办法解决的。
Android技术干货分享
2019/07/04
1K0
CSS 中的 Flex 布局 完全指南
Flex 弹性盒子布局是很强大的布局,它可以很方便的控制元素在垂直和水平方向上的行为。
羽月
2022/10/08
1.7K0
CSS 中的 Flex 布局 完全指南
Matplotlib 中文用户指南 3.5 密致布局指南
tight_layout会自动调整子图参数,使之填充整个图像区域。这是个实验特性,可能在一些情况下不工作。它仅仅检查坐标轴标签、刻度标签以及标题的部分。
ApacheCN_飞龙
2022/12/01
6320
Matplotlib 中文用户指南 3.5 密致布局指南
React Native布局详细指南
一款好的APP离不了一个漂亮的布局,本文章将向大家分享React Native中的布局方式FlexBox。 在React Native中布局采用的是FleBox(弹性框)进行布局。
CrazyCodeBoy
2020/08/10
2.7K0
CSS 中的 Grid 布局 完全指南
Grid 是一个基于二维网格布局的系统,有了它我们可以非常方便的实现过去很复杂布局,无需再使用float, inline-block, position 这些本质上是 hack 的方法。
羽月
2022/10/08
3.9K0
CSS 中的 Grid 布局 完全指南
React Native布局详细指南
本文出自《React Native学习笔记》系列文章。 一款好的APP离不了一个漂亮的布局,本文章将向大家分享React Native中的布局方式FlexBox。 在React Native中布局采用的是FleBox(弹性框)进行布局。 FlexBox提供了在不同尺寸设备上都能保持一致的布局方式。FlexBox是CSS3弹性框布局规范,目前还处于最终征求意见稿 (Last Call Working Draft)阶段,并不是所有的浏览器都支持Flexbox。但大家在做React Native开发时大可不
CrazyCodeBoy
2018/05/07
3.6K0
React Native布局详细指南
Title/CSS Flex布局完全指南
设置了.container元素为Flex容器(Flex container),.container的直接子元素被称为Flex项目(Flex item)
xlj
2021/08/17
3630
CSS入门指南-4:页面布局
display是 CSS 中最重要的用于控制布局的属性。每个元素都有一个默认的 display 值。对于大多数元素它们的默认值通常是 block 或 inline 。一个 block 元素通常被叫做块级元素。一个 inline 元素通常被叫做行内元素。
goodspeed
2020/12/22
2.2K0
CSS入门指南-4:页面布局
「Shiny」应用程序布局指南
Shiny 包含了许多用于布局应用程序组件的工具。本指南描述了以下应用程序布局功能特性:
王诗翔呀
2021/04/07
7.1K0
「Shiny」应用程序布局指南
CSS进阶内容——布局技巧和细节修饰
我们在之前的文章中已经掌握了CSS的大部分内容,但仍有一些内容我们没有涉略,这篇文章就是为了补充前面没有涉及的内容,为我们的知识做出补充并且介绍一些布局技巧
秋落雨微凉
2022/10/25
2K0
CSS进阶内容——布局技巧和细节修饰
Flutter布局指南之谁动了我的Key
Flutter中的Key,一直都是作为一个可选参数在很多Widget中出现,那么它到底有什么用,它到底怎么用,本篇文章将带你从头到尾,好好理解下,Flutter中的Key。
用户1907613
2022/03/31
5240
Flutter布局指南之谁动了我的Key
flex布局垂直居中并换行展示内容
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142011.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/25
9670
flex布局垂直居中并换行展示内容
Flutter布局指南之Box套盒子
对于写过Flutter的开发者来说,我敢肯定,大部分的开发者都不能准确预测这次Hot Reload之后,布局是否是自己想要的结果。Flutter的布局与Native的布局方式非常不同,所以,了解Flutter这茫茫多的布局组件,是我们准确布局的基础。
用户1907613
2022/03/31
1.2K0
Flutter布局指南之Box套盒子
Flutter布局指南之深入理解BoxConstraints
不管你是Android开发,还是Flutter开发,当你开始使用Flutter茫茫多的Widget时,可能会猜测Widget在屏幕上的尺寸和位置,但事实上,你会经历多次错误和失败,Flutter的Widget并不会总是像你想象的那样进行布局。
用户1907613
2022/03/31
2.1K0
Flutter布局指南之深入理解BoxConstraints
IOS开发之自动布局显示网络请求内容
  在上一篇博客中详细的介绍了IOS开发中的相对布局和绝对布局,随着手机屏幕尺寸的改变,在App开发中为了适应不同尺寸的手机屏幕,用自动布局来完成我们想要实现的功能和效果显得尤为重要。本人更喜欢使用相对布局。在下面要学习的例子中暂且先用我们的StoryBoard来设置我们组件的约束,以后会在代码中给我们的元素新建约束。iPhone4,5和将要发布的iPhone6的屏幕的大小都不一样,所以屏幕的适配是我们搞App开发必须要考虑的问题。   我们要完成一个什么例子呢,先上两张程序运行最终的结果图,之后看着图提出
lizelu
2018/01/11
8040
IOS开发之自动布局显示网络请求内容
苹果、Facebook的AR战略揭秘:布局AR内容,硬件还在研发
(VRPinea 6月28日讯)2021年,虽然疫情给全社会带来的打击仍然存在,但各行业都在慢慢复苏。尤其VR/AR行业,整体态势还是很蓬勃的,不论是在软硬件方面,还是行业内投融资情况,都能看出很多积极的动向。
VRPinea
2021/07/23
1.1K0

相似问题

从布局目录运行MasterPages

34

从UIScrollview中删除内容和帧布局指南

23

Android布局指南

12

嵌套MasterPages

13

关于SharePoint 2010的所有内容(控件、WebParts、主题、MasterPages)

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文