首页 > 解决方案 > 如何在 Angular 6 中使用我的 php sendmail 函数

问题描述

我正在制作一个 Angular 6 webapp。我想发送一封包含表格信息的邮件。我制作了一个 php 函数来执行此操作,但我不知道如何在我的 Angular 代码中链接它,我需要在我的 Angular 中访问我的 php 代码。

这是我的表格

<form class="example-form">
      <h1>Contacteer ons</h1>
      <p>Tel:02/411.74.95<br>
        info@atlemo.be

       </p>
       <p>Of vul de onderstaarde form in.</p>
        <table class="example-full-width" cellspacing="0"><tr>
          <td><mat-form-field class="example-full-width">
            <input matInput placeholder="Naam" id="naamContact" name="naamContact"[(ngModel)]="model.naamContact"  [formControl]="naamFormControl"
            [errorStateMatcher]="matcher"  required >
            <mat-error *ngIf="naamFormControl.hasError('required')">
              Naam is <strong>Verplicht</strong>
            </mat-error>
            <mat-error *ngIf="naamFormControl.hasError('whitespace')">Opgepast!! "SPATIES"
            </mat-error>
          </mat-form-field></td>
          <td><mat-form-field class="example-full-width">
            <input matInput placeholder="Voornaam"id="voornaamContact" name="voornaamContact" [(ngModel)]="model.voornaamContact"   [formControl]="voorNaamFormControl"
            [errorStateMatcher]="matcher"    required>
            <mat-error *ngIf="voorNaamFormControl.hasError('required')">
              voornaam is <strong>Verplicht</strong>
            </mat-error>
            <mat-error *ngIf="voorNaamFormControl.hasError('whitespace')">Opgepast!! "SPATIES"
            </mat-error>
          </mat-form-field></td>
        </tr></table>
        <mat-form-field class="example-full-width" floatLabel="never">
            <span matPrefix>+32 &nbsp;</span>
            <input type="text"  matInput placeholder="Tel" id="telContact" name="telContact"[(ngModel)]="model.telContact"  maxlength=13 [formControl]="telFormControl"
            [errorStateMatcher]="matcher"    numbersOnly required>
            <mat-icon matSuffix>phone</mat-icon>
            <mat-error *ngIf="telFormControl.hasError('required')">
              Telefoonnr is <strong>Verplicht</strong>
            </mat-error>
            <mat-error *ngIf="telFormControl.hasError('whitespace')">Opgepast!! "SPATIES"
            </mat-error>
            <mat-error *ngIf="telFormControl.hasError('smallerdanTen')">10 Cijfers ingeven!!
            </mat-error>
          </mat-form-field>

          <mat-form-field class="example-full-width" floatLabel="never">
                <input type="email"  matInput placeholder="email" id="emailContact" [(ngModel)]="model.emailContact"  name="emailContact" [formControl]="emailFormControl"
                [errorStateMatcher]="matcher"     required>
                <mat-icon matSuffix>alternate_email</mat-icon>
                <mat-error *ngIf="emailFormControl.hasError('required')">
                  email is <strong>Verplicht</strong>
                </mat-error>
                <mat-error *ngIf="emailFormControl.hasError('whitespace')">Opgepast!! "SPATIES"
                </mat-error>
                <mat-error *ngIf="emailFormControl.hasError('email')">ongeldig email structuur (abc@def.ghi) 
                </mat-error>
              </mat-form-field>
              <div class="row">

</div>
 <mat-form-field floatLabel="never">
        <mat-label>Onderwerp</mat-label>
        <mat-select [(value)]="selectedOnderwerp" name="onderwerpContact" [(ngModel)]="model.onderwerpContact" id="onderwerpContact" [formControle]="onderwerpFormControl"   [errorStateMatcher]="matcher"  required>

          <mat-options value="Inschrijving" >Inschrijving</mat-options>
          <mat-options value="Bestelling">Bestelling</mat-options>
          <mat-options value="Wedstrijd">Wedstrijd</mat-options>
          <mat-options value="Verzekeing/Ongeval">Verzekeing/Ongeval</mat-options>
          <mat-options value="Andere">Andere</mat-options>
        </mat-select>
        <mat-error *ngIf="onderwerpFormControl.hasError('required')">
          Kies een <strong>onderwerp</strong>
        </mat-error>
        <mat-error *ngIf="onderwerpFormControl.hasError('whitespace')">
        </mat-error>
      </mat-form-field>


  <mat-form-field appearance="fill" class="example-full-width">
    <textarea matInput placeholder="vraag of commentaar " name="commentaarContact" [(ngModel)]="model.commentaarContact"  id="commentaarContact" [formControle]="comentaarFormControl"   [errorStateMatcher]="matcher"  required></textarea>
    <mat-error *ngIf="comentaarFormControl.hasError('required')">
     Er is geen commentaar of vraag ingegeven.
    </mat-error>
    <mat-error *ngIf="comentaarFormControl.hasError('whitespace')">
    </mat-error>
  </mat-form-field>

      <button mat-raised-button class="example-full-width" (click)="checkform()" type="submit" color="primary">verstuur bericht</button>

      </form>

这是我的 php

<?php
  public function contact()
  {
      header("Access-Control-Allow-Origin: *");
      header("Access-Control-Request-Headers: GET,POST,OPTIONS,DELETE,PUT");
      header('Access-Control-Allow-Headers: Accept,Accept-Language,Content-Language,Content-Type');

      $formdata = json_decode(file_get_contents('php://input'), true);

      if( ! empty($formdata)) {

          $naam = $formdata['naamContact'];
          $voornaam = $formdata['voornaamContact'];
          $email = $formdata['emailContact'];
          $telefoonnr = $formdata['telContact'];
          $onderwerp = $formdata['onderwerpContact'];
          $commentaar = $formdata['commentaarContact'];

          $contactData = array(
              'naamContact' => $naam,
              'voornaamContact' => $voornaam,
              'emailContact' => $email,
              'telContact' => $telefoonnr,
              'onderwerpContact' => $onderwerp,
              'commentaarContact' => $commentaar,
              'created_at' => date('Y-m-d H:i:s', time())
          );

          $id = $this->api_model->insert_contact($contactData);

          $this->sendemail($contactData);

          $response = array('id' => $id);
      }
      else {
          $response = array('id' => '');
      }

      $this->output
          ->set_content_type('application/json')
          ->set_output(json_encode($response));
  }

  public function sendemail($contactData)
  {
      $message = '<p>Hi, <br />Some one has submitted contact form.</p>';
      $message .= '<p><strong>Naam: </strong>'.$contactData['naamContact'].'</p>';
      $message .= '<p><strong>Voornaam: </strong>'.$contactData['voornaamContact'].'</p>';
      $message .= '<p><strong>Email: </strong>'.$contactData['emailContact'].'</p>';
      $message .= '<p><strong>Tel nr: </strong>'.$contactData['telContact'].'</p>';
      $message .= '<p><strong>Opmerking of vraag: </strong>'.$contactData['commentaarContact'].'</p>';
      $message .= '<br />Thanks';

      $this->load->library('email');

      $config['protocol'] = 'sendmail';
      $config['mailpath'] = '/usr/sbin/sendmail';
      $config['charset'] = 'iso-8859-1';
      $config['wordwrap'] = TRUE;
      $config['mailtype'] = 'html';

      $this->email->initialize($config);

      $this->email->from($contactData['emailContact'], 'RSGiTECH');
      $this->email->to('lerys91@hotmail.com');
      $this->email->cc('info@atlemo.be');
      //$this->email->bcc('them@rsgitech.com');

      $this->email->subject('Contact Form');
      $this->email->message($message);

      $this->email->send();
  }
?>

需要在contact.ts或html中访问我的php代码

标签: phpangularsendmailangular-forms

解决方案


也许这个 StackOverflow 答案可以帮助你。
链接: Angular 2 如何发送邮件 PHP?


推荐阅读