Как решить ошибку 500 и отправить письмо, используя Angular 8 & PHP - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь запустить контактную форму, используя Angular 8. Я нашел решение здесь , но после адаптации кода к моему, консоль выдает ошибку 500. Я немного застрял здесь. Что мне еще нужно сделать? что не так? спасибо за продвижение.

Это мой последний код версии: https://github.com/BiggsBottor/Portfolio.git

но я пытаюсь запустить эти два файла:

contact.service.ts

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Contact } from '../models/contact';


@Injectable({
  providedIn: 'root'
})
export class ContactService {

  baseUrl = 'http://localhost/portfolio/api';
  // baseUrl = '../../../api';
  contact: Contact;

  constructor(private http: HttpClient) { }

  sendEmail() {
    console.log(this.contact);
    this.http.post(`${this.baseUrl}/email.php`, this.contact)
                  .subscribe(resp => console.log(resp), resp => console.log(resp));
  }
}

электронная почта. php

<?php 

switch($_SERVER['REQUEST_METHOD']){
case("OPTIONS"): //Allow preflighting to take place.
    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Methods: POST");
    header("Access-Control-Allow-Headers: content-type");
    exit;
case("POST"): //Send the email;
    header("Access-Control-Allow-Origin: *");

    $json = file_get_contents('php://input');

    $params = json_decode($json);

    $name = $params->name;
    $email = $params->email;
    $phone = $params->phone;
    $subject = $params->subject;
    $message = $params->message;

    // the structure of the email itself
    $to = 'my-personal-email@gmail.com';

    $subject = "Portfolio Contact Form with topic: $subject";

    $body = "From:\n\nName: $name";
    $body .= "Email: $email\n\n";
    $body .= "Phone: $phone\n\n";
    $body .= "Message:\n$message";

    $header = "From: $name <$email>";

    if (!mail($to, $subject, $body, $header)) { 
        http_response_code(500); 
    }

    break;
default: //Reject any non POST or OPTIONS requests.
    header("Allow: POST", true, 405);
    exit;
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...