Commit 0dd6fab5 authored by Dominik Hebeler's avatar Dominik Hebeler

Mailsystem auf das von Laravel 5.3 umgestellt

Außerdem habe ich eine Überprüfung in das Spendenformular eingebaut. Diese prüft, ob die angegebene Kontonummer/Iban korrekt ist
parent 6186f318
......@@ -2,6 +2,9 @@
namespace App\Http\Controllers;
use App\Mail\Kontakt;
use App\Mail\Spende;
use App\Mail\Sprachdatei;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use LaravelLocalization;
......@@ -34,23 +37,12 @@ class MailController extends Controller
} else {
# Wir versenden die Mail des Benutzers an uns:
$message = $request->input('message');
$subject = "[Ticket " . date("Y") . date("d") . date("m") . date("H") . date("i") . date("s") . "] MetaGer - Kontaktanfrage";
if (Mail::send(['text' => 'kontakt.mail'], ['messageText' => $message], function ($message) use ($replyTo, $subject) {
$message->to("office@suma-ev.de", $name = null);
$message->from($replyTo, $name = null);
$message->replyTo($replyTo, $name = null);
$message->subject($subject);
})) {
# Mail erfolgreich gesendet
$messageType = "success";
$returnMessage = 'Ihre Email wurde uns erfolgreich zugestellt. Vielen Dank dafür! Wir werden diese schnellstmöglich bearbeiten und uns dann ggf. wieder bei Ihnen melden.';
} else {
# Fehler beim senden der Email
$messageType = "error";
$returnMessage = 'Beim Senden Ihrer Email ist ein Fehler aufgetreten. Bitte schicken Sie eine Email an: office@suma-ev.de, damit wir uns darum kümmern können.';
}
$messageType = "success";
Mail::to("office@suma-ev.de")
->send(new Kontakt($replyTo, $message));
$returnMessage = 'Ihre Email wurde uns erfolgreich zugestellt. Vielen Dank dafür! Wir werden diese schnellstmöglich bearbeiten und uns dann ggf. wieder bei Ihnen melden.';
$messageType = "success";
}
return view('kontakt.kontakt')
......@@ -67,54 +59,55 @@ class MailController extends Controller
$messageType = ""; # [success|error]
#Sicherheitsüberprüfung (Wir wurden in letzter Zeit ziemlich mit Mails zugespammt
$hash = md5(date('Y') . date('m') . date('d'));
if ($request->input('dt') !== $hash) {
return redirect(url('spende'));
}
# Folgende Felder werden vom Spendenformular als Input übergeben:
# Name
# Telefon
# email
# Kontonummer ( IBAN )
# Bankleitzahl ( BIC )
# Nachricht
if (!$request->has('Kontonummer') || !$request->has('Bankleitzahl') || !$request->has('Nachricht')) {
$messageToUser = "Sie haben eins der folgenden Felder nicht ausgefüllt: IBAN, BIC, Nachricht. Bitte korrigieren Sie Ihre Eingabe und versuchen es erneut.\n";
# Wir überprüfen also, ob das Feld für die Kontonummer tatsächlich eine Kontonummer, oder eine IBAN enthält:
$iban = $request->input('Kontonummer', '');
$iban = preg_replace("/\s/s", "", $iban);
# Eine Kontonummer besteht nur aus Zahlen
# Eine IBAN besteht aus einem Ländercode (2 Buchstaben), einer 2 stelligen Prüfsumme (2 Ziffern) gefolgt von
# einer Kombination aus Buchstaben und Zahlen
if (!preg_match("/^\d+$/s", $iban) && !preg_match("/^[a-zA-Z]{2}\d{2}[a-zA-Z0-9]+$/s", $iban)) {
$messageToUser = "Die eingegebene IBAN/Kontonummer scheint nicht Korrekt zu sein. Nachricht wurde nicht gesendet";
$messageType = "error";
} else {
$message = "\r\nName: " . $request->input('Name', 'Keine Angabe');
$message .= "\r\nTelefon: " . $request->input('Telefon', 'Keine Angabe');
$message .= "\r\nKontonummer: " . $request->input('Kontonummer');
$message .= "\r\nBankleitzahl: " . $request->input('Bankleitzahl');
$message .= "\r\nNachricht: " . $request->input('Nachricht');
$replyTo = $request->input('email', 'anonymous-user@metager.de');
if (!filter_var($replyTo, FILTER_VALIDATE_EMAIL)) {
$messageToUser .= "Die eingegebene Email-Addresse ($replyTo) scheint nicht korrekt zu sein.";
}
try {
if (Mail::send(['text' => 'kontakt.mail'], ['messageText' => $message], function ($message) use ($replyTo) {
$message->to("office@suma-ev.de", $name = null);
$message->from($replyTo, $name = null);
$message->replyTo($replyTo, $name = null);
$message->subject("MetaGer - Spende");
})) {
# Folgende Felder werden vom Spendenformular als Input übergeben:
# Name
# Telefon
# email
# Kontonummer ( IBAN )
# Bankleitzahl ( BIC )
# Nachricht
if (!$request->has('Kontonummer') || !$request->has('Bankleitzahl') || !$request->has('Nachricht')) {
$messageToUser = "Sie haben eins der folgenden Felder nicht ausgefüllt: IBAN, BIC, Nachricht. Bitte korrigieren Sie Ihre Eingabe und versuchen es erneut.\n";
$messageType = "error";
} else {
$message = "\r\nName: " . $request->input('Name', 'Keine Angabe');
$message .= "\r\nTelefon: " . $request->input('Telefon', 'Keine Angabe');
$message .= "\r\nKontonummer: " . $request->input('Kontonummer');
$message .= "\r\nBankleitzahl: " . $request->input('Bankleitzahl');
$message .= "\r\nNachricht: " . $request->input('Nachricht');
$replyTo = $request->input('email', 'anonymous-user@metager.de');
if (!filter_var($replyTo, FILTER_VALIDATE_EMAIL)) {
$messageToUser .= "Die eingegebene Email-Addresse ($replyTo) scheint nicht korrekt zu sein.";
}
try {
Mail::to("office@suma-ev.de")
->send(new Spende($replyTo, $message));
$messageType = "success";
$messageToUser = "Herzlichen Dank!! Wir haben Ihre Spendenbenachrichtigung erhalten.";
} else {
} catch (\Swift_TransportException $e) {
$messageType = "error";
$messageToUser = 'Beim Senden Ihrer Spendenbenachrichtigung ist ein Fehler auf unserer Seite aufgetreten. Bitte schicken Sie eine Email an: office@suma-ev.de, damit wir uns darum kümmern können.';
}
} catch (\Swift_TransportException $e) {
$messageType = "error";
$messageToUser = 'Beim Senden Ihrer Spendenbenachrichtigung ist ein Fehler auf unserer Seite aufgetreten. Bitte schicken Sie eine Email an: office@suma-ev.de, damit wir uns darum kümmern können.';
}
}
if ($messageType === "error") {
return view('spende.danke')
$request->flash();
return view('spende.spende')
->with('title', 'Kontakt')
->with('css', 'donation.css')
->with($messageType, $messageToUser);
......@@ -188,12 +181,8 @@ class MailController extends Controller
$ex["new"] += $new;
if ($new > 0) {
Mail::send(['text' => 'kontakt.mail'], ['messageText' => $message], function ($message) use ($output, $filename) {
$message->subject('MetaGer - Sprachdatei');
$message->from('noreply@metager.de');
$message->to('office@suma-ev.de');
$message->attachData($output, basename($filename));
});
Mail::to("dev@suma-ev.de")
->send(new Sprachdatei($message, $output, basename($filename)));
}
$ex = base64_encode(serialize($ex));
return redirect(url('languages/edit', ['from' => $from, 'to' => $to, 'exclude' => $ex]));
......
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class Kontakt extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($from, $message)
{
$this->subject = "[Ticket " . date("Y") . date("d") . date("m") . date("H") . date("i") . date("s") . "] MetaGer - Kontaktanfrage";
$this->reply = $from;
$this->message = $message;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from($this->reply)
->subject($this->subject)
->text('kontakt.mail')
->with('messageText', $this->message);
}
}
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class Spende extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($from, $message)
{
$this->subject = "MetaGer - Spende";
$this->reply = $from;
$this->message = $message;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from($this->reply)
->subject($this->subject)
->text('kontakt.mail')
->with('messageText', $this->message);
}
}
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class Sprachdatei extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($message, $fileContent, $filename)
{
$this->subject = "MetaGer - Sprachdatei";
$this->reply = "noreply@metager.de";
$this->message = $message;
$this->fileContent = $fileContent;
$this->filename = $filename;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from($this->reply)
->cc('carsten@suma-ev.de')
->subject($this->subject)
->text('kontakt.mail')
->with('messageText', $this->message)
->attachData($this->fileContent, $this->filename);
}
}
This diff is collapsed.
......@@ -42,10 +42,10 @@
</div>
<div class="col-lg-6 col-md-12 col-sm-12 others noprint" id="right">
<h2>{{ trans('spenden.about.1') }}</h2>
<p>{{ trans('spenden.about.2') }}</p>
<p>{{ trans('spenden.about.3') }}</p>
<p>{{ trans('spenden.about.4') }}</p>
<p>{{ trans('spenden.about.5') }}</p>
<p>{!! trans('spenden.about.2') !!}</p>
<p>{!! trans('spenden.about.3') !!}</p>
<p>{!! trans('spenden.about.4') !!}</p>
<p>{!! trans('spenden.about.5') !!}</p>
</div>
<div class="clearfix"></div>
</div>
......
......@@ -45,27 +45,27 @@
<input type="hidden" name="dt" value="{{ md5(date('Y') . date('m') . date('d')) }}" />
<div class="form-group donation-form-group">
<label for="Name">{!! trans('spenden.lastschrift.3') !!}</label>
<input type="text" class="form-control" id="Name" required="" name="Name" placeholder="{!! trans('spenden.lastschrift.3.placeholder') !!}">
<input type="text" class="form-control" id="Name" required="" name="Name" placeholder="{!! trans('spenden.lastschrift.3.placeholder') !!}" value="{{ old('Name') }}" />
</div>
<div class="form-group donation-form-group">
<label for="email">{!! trans('spenden.lastschrift.4') !!}</label>
<input type="email" class="form-control" id="email" name="email" placeholder="Email">
<input type="email" class="form-control" id="email" name="email" placeholder="Email" value="{{ old('email') }}" />
</div>
<div class="form-group donation-form-group">
<label for="tel">{!! trans('spenden.lastschrift.5') !!}</label>
<input type="tel" class="form-control" id="tel" name="Telefon" placeholder="xxxx-xxxxx">
<input type="tel" class="form-control" id="tel" name="Telefon" placeholder="xxxx-xxxxx" value="{{ old('Telefon') }}" />
</div>
<div class="form-group donation-form-group">
<label for="iban">{!! trans('spenden.lastschrift.6') !!}</label>
<input type="text" class="form-control" id="iban" required="" name="Kontonummer" placeholder="IBAN">
<input type="text" class="form-control" id="iban" required="" name="Kontonummer" placeholder="IBAN" value="{{ old('Kontonummer') }}" />
</div>
<div class="form-group donation-form-group">
<label for="bic">{!! trans('spenden.lastschrift.7') !!}</label>
<input type="text" class="form-control" id="bic" required="" name="Bankleitzahl" placeholder="BIC">
<input type="text" class="form-control" id="bic" required="" name="Bankleitzahl" placeholder="BIC" value="{{ old('Bankleitzahl') }}" />
</div>
<div class="form-group donation-form-group">
<label for="msg">{!! trans('spenden.lastschrift.8') !!}</label>
<textarea class="form-control" id="msg" required="" name="Nachricht" placeholder="{!! trans('spenden.lastschrift.8.placeholder') !!}"></textarea>
<textarea class="form-control" id="msg" required="" name="Nachricht" placeholder="{!! trans('spenden.lastschrift.8.placeholder') !!}">{{ old('Nachricht') }}</textarea>
</div>
<button type="submit" class="btn btn-default">{!! trans('spenden.lastschrift.9') !!}</button>
</form>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment