2017-07-21 64 views
3

因为我现在找不到三天的答案,所以我试着自己去问。如何将Swiftmailer集成到Angular2中

我对Angular有点新鲜,2周前开始学习它。我用angular-cli建立了一个项目。到目前为止,一切都很好,除了我的联系表格之外,我想象的都是。

我想 我想Swiftmailer融入我的角度的项目,所以我其实可以通过联系表格发送电子邮件本地(Linux Mint的)我自己。

我有什么 我已经有了一个简单的引导形式(姓名,电子邮件,消息)和我通过作曲家添加Swiftmailer。我创建了一个名为mail.php文件(因为角度不能做到这一点),到我的资产文件夹:

<?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); 

在我的模板,我设置操作这个文件。当我尝试提交时,没有任何反应。我的想法是,我需要在我的contact.component.ts中做些事情,但是当我尝试导入“Swiftmailer/Message.php”时,我失败了。

有没有人有一个想法,我需要做什么使它一起工作?

版本:

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

在学习像Angular这样复杂的前端框架之前,您似乎缺乏基本的表单/ POST知识。你应该区分前端和后端。 –

回答

2

我解决了它,终于。加载vendor/autoload.php时我错过了“/”,这就是为什么它不起作用。

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