Entwickler-Ecke

Programmiersprachen (Server) - Mailscript verursacht Websiteerror


Xytronix - So 06.01.19 16:57
Titel: Mailscript verursacht Websiteerror
Hallo,

leider funktioniert mein Mailscript nicht.

Ich würde mich freuen, wenn ein paar Leute darauf einen Blick werfen und möglicherweise Lösungsvorschläge geben.

Mit der Mailfunktion:

PHP-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
if(isset($_GET['zusage'])) {
                      $email_from = "....";   //Absender, der die Emails sendet
                      $absendername = "Website"
                      
                      $empfaenger = "...."//Empfänger-Adresse
                      $empfaenger2 = "...."// Organisationsteam
                      $mail_cc = "...."//CC-Adresse, diese E-Mail-Adresse bekommt einer weitere Kopie
                      $betreff = "Zusage von ".$nachname//Betreff der Email
                      $betreff2 = ".... ".$nachname ;
                      
                      //Diese Felder werden nicht in der Mail stehen
                      // $ignore_fields = array('submit', 'control');
                      if((!empty($vorname)) AND (!empty($nachname))){ 
                        $name = $vorname." ".$nachname
                      } else if(!empty($nachname)) {
                        $name = $nachname
                      }  else if(!empty($vorname)) {
                        $name = $vorname
                      }
                      $email = $_POST['email'];
                      $persAnzahl = $_POST['persAnzahl'];
                      $wann = $_POST['wann'];
                      $mitteilung = $_POST['mitteilung'];
                      $idee = $_POST['idee'];
                      
                      
                      
                      //Datum, wann die Mail erstellt wurde
                      $name_tag = array("Sonntag""Montag""Dienstag""Mittwoch""Donnerstag""Freitag""Samstag");
                      $num_tag = date("w");
                      $tag = $name_tag[$num_tag];
                      $jahr = date("Y");
                      $n = date("d");
                      $monat = date("m");
                      $time = date("H:i");
                      
                      //  Email Code "if(!empty($user['email'])) { echo "E-Mail:"." ".$user['email']."\n"; } else if(!empty($email)) { echo "E-Mail"." ".$email."\n"; }"
                      //  Mitteilung Code "if(!empty($mitteilung)) { echo "Mitteilung:"." ".$mitteilung."\n"; }"
                      //  Idee Code  "if(!empty($idee)) { echo "Idee:"." ".$idee."\n"; }"
                      $inhaltEmail = "Guten Tag, es wurde eine Zusage von $nachname getätigt.\n
                              \n Name: 
$name \n
                              Im System E-Mail: 
$user['email'] \n
                              Mitgeteilte E-Mail: 
$email \n
                              Personenanzahl: 
$persAnzahl \n
                              Wann: 
$wann \n
                              Mitteilung: 
$mitteilung
                              \n Bitte dieser E-Mail nicht antworten.
                              "
;

                      $inhaltEmail2 = "Guten Tag, es wurde eine Idee von $nachname euch mitgeteilt.\n
                              \n Name: 
$name \n
                              Im System E-Mail: 
$user['email'] \n
                              Mitgeteilte E-Mail: 
$email \n
                              Idee: 
$idee
                              \n Bitte dieser E-Mail nicht antworten.
                              "
;  
                      //Erste Zeile unserer Email
                      $msg = ":: Gesendet am $tag, den $n.$monat.$jahr - $time Uhr ::\n\n $inhaltEmail";
                      $msg2 = ":: Gesendet am $tag, den $n.$monat.$jahr - $time Uhr ::\n\n $inhaltEmail2";
                      $header="From: $email_from";
                      
                      if (!empty($mail_cc)) {
                      $header .= "\n";
                      $header .= "Cc: $mail_cc";
                      }
                      
                      //Email als UTF-8 senden
                      $header .= "\nContent-type: text/plain; charset=utf-8";
                      
                      $mail_senden = mail($empfaenger,$betreff,$msg,$header);
                      if(!empty($idee)) { $mail_senden = mail($empfaenger2,$betreff2,$msg2,$header); }
                      
                      //Weiterleitung, hier konnte jetzt per echo auch Ausgaben stehen
                      if($mail_senden){
                        echo '<div class="alert alert-success alert-dismissible fade in">
                        <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
                        <strong>Erfolgreich!</strong> Ihre Daten wurden erfolgreich versendet.
                        </div>'
;
                      } else{
                        echo '<div class="alert alert-danger alert-dismissible fade in"> 
                        <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
                        <strong>Fehler!</strong> Beim Senden ist ein Fehler aufgetreten.
                        </div>'
// Fehler beim Senden
                      }
                    }

                    if(isset($_GET['absage'])) {
                      $email_from = "....";   //Absender, der die Emails sendet
                      $absendername = 'Website'
                      
                      $empfaenger = "...."//Empfänger-Adresse
                      $mail_cc = ""//CC-Adresse, diese E-Mail-Adresse bekommt einer weitere Kopie
                      $betreff = "Absage von ".$nachname//Betreff der Email
                      
                      //Diese Felder werden nicht in der Mail stehen
                      // $ignore_fields = array('submit', 'control');
                      if((!empty($vorname)) AND (!empty($nachname))){ 
                        $name = $vorname." ".$nachname
                      } else if(!empty($nachname)) {
                        $name = $nachname
                      }  else if(!empty($vorname)) {
                        $name = $vorname
                      }
                      $email = $_POST['email'];
                      $grund = $_POST['grund'];
                      $mitteilung = $_POST['mitteilung'];
                      
                      
                      
                      //Datum, wann die Mail erstellt wurde
                      $name_tag = array("Sonntag""Montag""Dienstag""Mittwoch""Donnerstag""Freitag""Samstag");
                      $num_tag = date("w");
                      $tag = $name_tag[$num_tag];
                      $jahr = date("Y");
                      $n = date("d");
                      $monat = date("m");
                      $time = date("H:i");

                      // Email Code "if(!empty($user['email'])) { echo "E-Mail:"." ".$user['email']."\n"; }"
                      // Grund Code "if(!empty($grund)) { echo "Grund:"." ".$grund."\n"; }"
                      // Mitteilungs Code "if(!empty($mitteilung)) { echo "Mitteilung:"." ".$mitteilung."\n"; }"

                      $inhaltEmail = "Guten Tag, es wurde eine Zusage von $nachname getätigt.\n
                              \n Name: 
$name \n
                              Im System E-Mail: 
$user['email'] \n
                              Mitgeteilte E-Mail: 
$email \n
                              Grund: 
$grund \n
                              Mitteilung: 
$mitteilung
                              \n Bitte dieser E-Mail nicht antworten.
                              "
;
                      //Erste Zeile unserer Email
                      $msg = ":: Gesendet am $tag, den $n.$monat.$jahr - $time Uhr ::\n\n $inhaltEmail";
                      $header="From: $email_from";
                      
                      if (!empty($mail_cc)) {
                      $header .= "\n";
                      $header .= "Cc: $mail_cc";
                      }
                      
                      //Email als UTF-8 senden
                      $header .= "\nContent-type: text/plain; charset=utf-8";
                      
                      $mail_senden = mail($empfaenger,$betreff,$msg,$header);
                      
                      //Weiterleitung, hier konnte jetzt per echo auch Ausgaben stehen
                      if($mail_senden){
                        echo '<div class="alert alert-success alert-dismissible fade in">
                        <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
                        <strong>Erfolgreich!</strong> Ihre Daten wurden erfolgreich versendet.
                        </div>'
;
                      } else{
                        echo '<div class="alert alert-danger alert-dismissible fade in"> 
                        <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
                        <strong>Fehler!</strong> Beim Senden ist ein Fehler aufgetreten.
                        </div>'
// Fehler beim Senden
                      }
                    ?>


Mit PHPMailer:

PHP-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
<?php
$url_ok = "intern.php"//Zielseite, wenn E-Mail erfolgreich versendet wurde
            /* 
            *
            * ZUSAGE-AUSWERTUNG
            *
            */

            /* Namespace alias (don't need Exception this time). */
            if($_GET['zusage'] == 1){
              use PHPMailer\PHPMailer\PHPMailer;
              use PHPMailer\PHPMailer\Exception;

              require '/var/www/vhosts/eine-website/eine-website/phpmailer/src/Exception.php';
              require '/var/www/vhosts/eine-website/eine-website/phpmailer/src/PHPMailer.php';

              /* Create a new PHPMailer object. */
              $mail = new PHPMailer(true);
              $mail2 = new PHPMailer(true);

              /* Set the mail sender. */
              $mail->setFrom('eine-email''Website');
              $mail2->setFrom('eine-email''Website');

              /* Add a recipient. */
              $mail->addAddress('eine-email');
              $mail2->addAddress('eine-email');
              $mail->addBCC('eine-email');
              $mail2->addBCC('eine-email');

              /* Set the subject. */
              $mail->Subject = '...... '.$nachname;
              $mail2->Subject = "..... ".$nachname ;

              /* Abfragen + Variablensetzung */
              if((!empty($vorname)) AND (!empty($nachname))){ 
                $name = $vorname." ".$nachname
              } else if(!empty($nachname)) {
                $name = $nachname
              }  else if(!empty($vorname)) {
                $name = $vorname
              }
              $email = $_POST['email'];
              $persAnzahl = $_POST['persAnzahl'];
              $knames = $_POST['knames'];
              $mitteilung = $_POST['mitteilung'];
              $idee = $_POST['idee'];

              //Datum, wann die Mail erstellt wurde
              $name_tag = array("Sonntag""Montag""Dienstag""Mittwoch""Donnerstag""Freitag""Samstag");
              $num_tag = date("w");
              $tag = $name_tag[$num_tag];
              $jahr = date("Y");
              $n = date("d");
              $monat = date("m");
              $time = date("H:i");

              /* Set the mail message body. */
              $inhaltEmail = 'Guten Tag, es wurde eine Zusage von $nachname getätigt.\n
                      \n Name: $name \n
                      Im System E-Mail: $user["email"] \n
                      Mitgeteilte E-Mail: $email \n
                      Personenanzahl: $persAnzahl \n
                      Wer kommt?: $knames \n
                      Mitteilung: $mitteilung \n
                      \n \n \n Bitte dieser E-Mail nicht antworten.'
;

              $inhaltEmail2 = 'Guten Tag, es wurde eine Idee von $nachname euch mitgeteilt.\n
                      \n Name: $name \n
                      Im System E-Mail: $user["email"] \n
                      Mitgeteilte E-Mail: $email \n
                      Idee: $idee \n
                      \n \n \n Bitte dieser E-Mail nicht antworten.'
;  
              $mail->Body = ':: Gesendet am $tag, den $n.$monat.$jahr - $time Uhr ::\n\n $inhaltEmail';
              $mail2->Body = ':: Gesendet am $tag, den $n.$monat.$jahr - $time Uhr ::\n\n $inhaltEmail';

              if(!empty($idee)) {
                if (!$mail2->send()) {
                /* PHPMailer error. */
                echo '<div class="alert alert-danger alert-dismissible fade in"> 
                    <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
                    <strong>Fehler!</strong> Beim Senden ist ein Fehler aufgetreten.
                    </div>'
// Fehler beim Senden
                } else {
                  echo '<div class="alert alert-success alert-dismissible fade in">
                    <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
                    <strong>Erfolgreich!</strong> Ihre Daten wurden erfolgreich versendet.
                                        </div>'
;
                                    header("Location: ".$url_ok); //Mail wurde gesendet
                                    exit();
                }
              }
              /* Finally send the mail. */
              if (!$mail->send()) {
                /* PHPMailer error. */
                echo '<div class="alert alert-danger alert-dismissible fade in"> 
                  <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
                  <strong>Fehler!</strong> Beim Senden ist ein Fehler aufgetreten.
                  </div>'
// Fehler beim Senden
              } else {
                echo '<div class="alert alert-success alert-dismissible fade in">
                  <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
                  <strong>Erfolgreich!</strong> Ihre Daten wurden erfolgreich versendet.
                                    </div>'
;
                                header("Location: ".$url_ok); //Mail wurde gesendet
                                exit();
              }
            }
            /* 
            *
            * ABSAGE-AUSWERTUNG
            *
            */

            /* Namespace alias (don't need Exception this time). */
            if($_GET['absage'] == 1){
              use PHPMailer\PHPMailer\PHPMailer;
              use PHPMailer\PHPMailer\Exception;

              require '/var/www/vhosts/eine-website/eine-website/phpmailer/src/Exception.php';
              require '/var/www/vhosts/eine-website/eine-website/phpmailer/src/PHPMailer.php';

              /* Create a new PHPMailer object. */
              $mail = new PHPMailer(true);
              $mail2 = new PHPMailer(true);

              /* Set the mail sender. */
              $mail->setFrom('eine-email''Website');
              $mail2->setFrom('eine-email''Website');

              /* Add a recipient. */
              $mail->addAddress('eine-email');
              $mail2->addAddress('eine-email');
              $mail->addBCC('eine-email');
              $mail2->addBCC('eine-email');

              /* Set the subject. */
              $mail->Subject = 'Neue Absage von '.$nachname;

              /* Abfragen + Variablensetzung */
              if((!empty($vorname)) AND (!empty($nachname))){ 
                $name = $vorname." ".$nachname
              } else if(!empty($nachname)) {
                $name = $nachname
              }  else if(!empty($vorname)) {
                $name = $vorname
              }
              $email = $_POST['email'];
              $grund = $_POST['grund'];
              $mitteilung = $_POST['mitteilung'];
              

              //Datum, wann die Mail erstellt wurde
              $name_tag = array("Sonntag""Montag""Dienstag""Mittwoch""Donnerstag""Freitag""Samstag");
              $num_tag = date("w");
              $tag = $name_tag[$num_tag];
              $jahr = date("Y");
              $n = date("d");
              $monat = date("m");
              $time = date("H:i");

              /* Set the mail message body. */
              $inhaltEmail = 'Guten Tag, es wurde eine Zusage von $nachname getätigt.\n
                      \n Name: $name \n
                      Im System E-Mail: $user["email"] \n
                      Mitgeteilte E-Mail: $email \n
                      Grund: $grund \n
                      Mitteilung: $mitteilung \n
                      \n \n Bitte dieser E-Mail nicht antworten.'
;

              
              $mail->Body = ':: Gesendet am $tag, den $n.$monat.$jahr - $time Uhr ::\n\n $inhaltEmail';

              /* Finally send the mail. */
              if (!$mail->send()) {
                /* PHPMailer error. */
                echo '<div class="alert alert-danger alert-dismissible fade in"> 
                  <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
                  <strong>Fehler!</strong> Beim Senden ist ein Fehler aufgetreten.
                                    </div>'
;
              } else {
                echo '<div class="alert alert-success alert-dismissible fade in">
                  <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
                  <strong>Erfolgreich!</strong> Ihre Daten wurden erfolgreich versendet.
                                    </div>'
;
                                header("Location: ".$url_ok); //Mail wurde gesendet
                                exit();
              }
            } ?>


So werden die Variablen oben definiert:

PHP-Quelltext
1:
2:
3:
4:
5:
userid = $_SESSION['userid'];    
// Setze die Variablen Vorname und Nachname
$statement = $pdo->prepare("SELECT * FROM users WHERE id = :userid");
$statement->execute(array('nachname' => $nachname,'vorname' => $vorname,'adminlevel' => $adminlevel));
$user = $statement->fetch();



Folgender Websitefehler entsteht, wenn man es mit der Methode PHPMailer versucht (gleicher Fehler wie bei der normalen mail Funktion):

403 Error:
Forbidden
You don't have permission to access /mailscript.php on this server.



Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.



Gruß



Xytronix

Moderiert von user profile iconChristian S.: PHP-Tags hinzugefügt
Moderiert von user profile iconChristian S.: Quelltext von externen Quellen eingebunden


Christian S. - So 06.01.19 17:28

Hallo,

bitte binde den Quelltext, der zu Deinem Beitrag gehört, immer direkt in Deinem Beitrag oder als Dateianhang an Deinem Beitrag ein. Damit bleibt er erhalten und wir sind nicht drauf angewiesen, dass externe Quellen langfristig verfügbar sind. Ich habe das in Deinem Beitrag dieses Mal für Dich gemacht, bitte denke in Zukunft aber selber dran. Danke! :)

Grüße
Christian