2017-07-21 2 views
3

Da ich seit drei Tagen keine Antwort finden konnte, versuche ich es selbst zu fragen.Wie man Swiftmailer in Angular2 integriert

Ich bin etwas neu zu Angular, fing an, es vor 2 Wochen zu lernen. Ich habe ein Projekt mit angular-cli aufgesetzt. So weit, so gut funktioniert alles, wie ich mir neben meinem Kontaktformular vorgestellt habe.

Was ich möchte ich will Swiftmailer in mein Eckige Projekt integrieren, so dass ich tatsächlich eine E-Mail lokal (Linux Mint) mir über das Kontaktformular senden.

Was ich Ich habe bereits eine einfache Bootstrap-Form (Name, E-Mail, Nachricht) und ich fügte Swiftmailer über Komponisten. Ich habe eine Datei mit dem Namen mail.php (weil Angular kann das nicht tun) in mein Vermögen Ordner:

<?php 
require_once __DIR__.'../vendor/autoload.php'; 

$request = json_decode(file_get_contents('php://input')); 

// Create the Transport 
$transport = (new Swift_SmtpTransport('smtp.actual-server.de', 25)) 
->setUsername('actually-filled-in-working-username') 
->setPassword('actually-filled-in-working-password') 
; 

// Create the Mailer using your created Transport 
$mailer = new Swift_Mailer($transport); 
$mailer->registerPlugin(new Swift_Plugins_AntiFloodPlugin(100, 30)); 

// Create a message 
$message = (new Swift_Message('Test Subject')) 
->setFrom([$request->email => $request->name]) 
->setTo(['[email protected]' => 'Suzu']) 
->setBody($request->message) 
; 

// Send the message 
return $mailer->send($message); 

In meiner Vorlage Ich war die Aktion auf diese Datei setzen. Wenn ich versuche, mich zu unterwerfen, passiert nichts. Meine Idee war, dass ich etwas in meiner contact.component.ts tun muss, aber wenn ich versuche, "Swiftmailer/Message.php" zu importieren, scheitere ich.

Hat jemand eine Idee, was ich dort tun muss, damit es zusammenarbeitet?

Versionen:

PHP 7.0.18-0ubuntu0.16.04.1 (cli) (NTS) 

"swiftmailer/swiftmailer": "^6.0" 

@angular/cli: 1.2.0 
node: 6.11.1 
os: linux x64 
@angular/animations: 4.3.0 
@angular/cdk: 2.0.0-beta.8 
@angular/common: 4.3.0 
@angular/compiler: 4.3.0 
@angular/core: 4.3.0 
@angular/forms: 4.3.0 
@angular/http: 4.3.0 
@angular/material: 2.0.0-beta.8 
@angular/platform-browser: 4.3.0 
@angular/platform-browser-dynamic: 4.3.0 
@angular/router: 4.3.0 
@angular/cli: 1.2.0 
@angular/compiler-cli: 4.3.0 
@angular/language-service: 4.3.0 
+1

Sie scheinen grundlegende Form/POST-Kenntnisse zu fehlen, bevor Sie sogar ein kompliziertes Frontend-Framework wie Angular lernen. Sie sollten Frontend und Backend unterscheiden. –

Antwort

2

ich es gelöst, endlich. Ich habe ein "/" beim Laden von Vendor/Autoload.php vermisst, deshalb hat es nicht funktioniert.

<?php 
require_once __DIR__ . '/../../vendor/autoload.php'; 
require_once __DIR__ . '/../../vendor/swiftmailer/swiftmailer/lib/swift_required.php';