如何将Swiftmailer集成到Angular2中

时间:2017-07-21 07:05:32

标签: php angular swiftmailer

因为我现在找不到三天的答案,所以我试着自己问一下。

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

我想要什么 我想将Swiftmailer集成到我的Angular项目中,所以我实际上可以通过联系表单向我自己发送电子邮件本地(Linux Mint)。

我有什么 我已经有一个简单的引导表单(名称,电子邮件,消息),我通过 composer 添加了Swiftmailer。我创建了一个名为mail.php的文件(因为Angular不能这样做)到我的资产文件夹中:

<?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(['suzu.amaranthine@gmail.com' => '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 个答案:

答案 0 :(得分:2)

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

<?php
require_once __DIR__ . '/../../vendor/autoload.php';
require_once __DIR__ . '/../../vendor/swiftmailer/swiftmailer/lib/swift_required.php';
相关问题