MailController.php 5.76 KB
Newer Older
1
2
3
4
5
6
<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
7
use LaravelLocalization;
8
9
10
11
12
13
14
15
16
17
use Mail;

class MailController extends Controller
{
    /**
     * Load Startpage accordingly to the given URL-Parameter and Mobile
     *
     * @param  int  $id
     * @return Response
     */
Dominik Hebeler's avatar
Dominik Hebeler committed
18
19
    public function contactMail(Request $request)
    {
20
21

        # Nachricht, die wir an den Nutzer weiterleiten:
Dominik Hebeler's avatar
Dominik Hebeler committed
22
        $messageType   = ""; # [success|error]
23
        $returnMessage = '';
Dominik Hebeler's avatar
Dominik Hebeler committed
24
25
        $replyTo       = $request->input('email', 'noreply@metager.de');
        if ($replyTo === "") {
26
            $replyTo = "noreply@metager.de";
Dominik Hebeler's avatar
Dominik Hebeler committed
27
        } else {
28
29
30
            $replyTo = $request->input('email');
        }

Dominik Hebeler's avatar
Dominik Hebeler committed
31
32
        if (!$request->has('message')) {
            $messageType   = "error";
33
            $returnMessage = "Tut uns leid, aber leider haben wir mit Ihrer Kontaktanfrage keine Daten erhalten. Die Email wurde nicht versand";
Dominik Hebeler's avatar
Dominik Hebeler committed
34
        } else {
35
36
            # Wir versenden die Mail des Benutzers an uns:
            $message = $request->input('message');
37
            $subject = "[Ticket " . date("Y") . date("d") . date("m") . date("H") . date("i") . date("s") . "] MetaGer - Kontaktanfrage";
Dominik Hebeler's avatar
Dominik Hebeler committed
38
            if (Mail::send(['text' => 'kontakt.mail'], ['messageText' => $message], function ($message) use ($replyTo, $subject) {
39
40
41
                $message->to("office@suma-ev.de", $name = null);
                $message->from($replyTo, $name = null);
                $message->replyTo($replyTo, $name = null);
42
                $message->subject($subject);
Dominik Hebeler's avatar
Dominik Hebeler committed
43
            })) {
44
                # Mail erfolgreich gesendet
Dominik Hebeler's avatar
Dominik Hebeler committed
45
                $messageType   = "success";
46
                $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.';
Dominik Hebeler's avatar
Dominik Hebeler committed
47
            } else {
48
                # Fehler beim senden der Email
Dominik Hebeler's avatar
Dominik Hebeler committed
49
                $messageType   = "error";
Dominik Hebeler's avatar
Dominik Hebeler committed
50
                $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.';
51
52
53
54
55
56
            }

            $messageType = "success";
        }

        return view('kontakt.kontakt')
Dominik Hebeler's avatar
Dominik Hebeler committed
57
58
59
60
            ->with('title', 'Kontakt')
            ->with('css', 'kontakt.css')
            ->with('js', ['openpgp.min.js', 'kontakt.js'])
            ->with($messageType, $returnMessage);
61
    }
Dominik Hebeler's avatar
Dominik Hebeler committed
62
63
64
65
66

    public function donation(Request $request)
    {
        # Der enthaltene String wird dem Benutzer nach der Spende ausgegeben
        $messageToUser = "";
Dominik Hebeler's avatar
Dominik Hebeler committed
67
        $messageType   = ""; # [success|error]
Dominik Hebeler's avatar
Dominik Hebeler committed
68
69
70
71
72
73
74
75

        # Folgende Felder werden vom Spendenformular als Input übergeben:
        # Name
        # Telefon
        # email
        # Kontonummer ( IBAN )
        # Bankleitzahl ( BIC )
        # Nachricht
Dominik Hebeler's avatar
Dominik Hebeler committed
76
        if (!$request->has('Kontonummer') || !$request->has('Bankleitzahl') || !$request->has('Nachricht')) {
Dominik Hebeler's avatar
Dominik Hebeler committed
77
            $messageToUser = "Sie haben eins der folgenden Felder nicht ausgefüllt: IBAN, BIC, Nachricht. Bitte korrigieren Sie Ihre Eingabe und versuchen es erneut.\n";
Dominik Hebeler's avatar
Dominik Hebeler committed
78
79
            $messageType   = "error";
        } else {
80
81
82
83
84
            $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');
Dominik Hebeler's avatar
Dominik Hebeler committed
85
86
87
88
89
90

            $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.";
            }

Dominik Hebeler's avatar
Dominik Hebeler committed
91
92
            try {
                if (Mail::send(['text' => 'kontakt.mail'], ['messageText' => $message], function ($message) use ($replyTo) {
93
                    $message->to("office@suma-ev.de", $name = null);
Dominik Hebeler's avatar
Dominik Hebeler committed
94
95
96
97
                    $message->from($replyTo, $name = null);
                    $message->replyTo($replyTo, $name = null);
                    $message->subject("MetaGer - Spende");
                })) {
Dominik Hebeler's avatar
Dominik Hebeler committed
98
99
100
101
                    $messageType   = "success";
                    $messageToUser = "Herzlichen Dank!! Wir haben Ihre Spendenbenachrichtigung erhalten.";
                } else {
                    $messageType   = "error";
Dominik Hebeler's avatar
Dominik Hebeler committed
102
103
                    $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.';
                }
Dominik Hebeler's avatar
Dominik Hebeler committed
104
105
            } catch (\Swift_TransportException $e) {
                $messageType   = "error";
Dominik Hebeler's avatar
Dominik Hebeler committed
106
107
108
109
                $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.';
            }
        }

110
111
112
113
114
115
116
117
        if ($messageType === "error") {
            return view('spende.danke')
                ->with('title', 'Kontakt')
                ->with('css', 'donation.css')
                ->with($messageType, $messageToUser);
        } else {
            $data = ['name' => $request->input('Name', 'Keine Angabe'), 'telefon' => $request->input('Telefon', 'Keine Angabe'), 'kontonummer' => $request->input('Kontonummer'), 'bankleitzahl' => $request->input('Bankleitzahl'), 'email' => $request->input('email', 'anonymous-user@metager.de'), 'nachricht' => $request->input('Nachricht')];
            $data = base64_encode(serialize($data));
118
            return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route("danke", ['data' => $data])));
119
120
        }

Dominik Hebeler's avatar
Dominik Hebeler committed
121
    }
Dominik Hebeler's avatar
Dominik Hebeler committed
122
}