Finde ich fürchterlich! Optisch echt schlecht und würde mich völlig nerven, wenn ich soetwas vorfinden würde. Auf einem Handy vermutlich unlösbar.
Beiträge von m.scatello
-
-
Bei Gmail musste man, soweit ich mich erinnern kann, besondere Einstellungen beachten. Weiß ich aber jetzt nicht auswendig. Bemühe mal google mit
phpmailer gmail
Da findest du bestimmt die nötigen Infos
Nachtrag: im Verzeichnis examples findest du mit gmail.phps ein Beispiel für gmail
-
Oder wo ist vorteil von den phpmailer?
Das habe ich schon geschrieben!
Siehe auch http://www.php-rocks.de/thema/…senden-mit-phpmailer.html
Kein vernünftiger PHP-Programierer setzt die mail-Funktion von PHP roh ein
-
Zugangsdaten falsch? Port falsch? SSL erforderlich? Also ein wenig Eigeninitiative ist schon erforderlich!
Es müssen die gleichen Daten genommen werden, die auch im Mail-Programm benutzt werden. Je nach Mail-Hoster muss man den Port anpassen. Diese Infos sollte man beim Mail-Hoster finden können.
Zudem ist in der Fehlermeldung auch ein Link, dort findet man auch Infos.
-
Du hast ha nur den Autoloader auf dem Server
Wo sind die anderen Dateien vom phpMailer?
-
Warning: include(PHPMailer/PHPMailerAutoload.php): failed to open stream: No such file or directory in /var/www/html/PHPMailer/mailer.php on line 34
Da stimmt was nicht mit der Pfadangabe zum phpMailer
-
Testest du das auf deinem Rechner oder auf einem Webspace? Drehe mal das Error-Reporting hoch, in dem du am Anfang des PHP-Scriptes direkt unter <?php diese Zeilen einfügst:
error_reporting(E_ALL);
ini_set('display_errors', true);
Ein Blick in die Logfiles könnten auch weiterhelfen.
-
Man könnte ja auch mal in der Doku nachsehen und auch die Beispiele dort beachten:
http://php.net/manual/de/function.mysqli-connect.php
http://php.net/manual/de/mysqli.query.php
Ein Tutorial hilft auch: https://www.php-einfach.de/mysql-tutorial/crashkurs-mysqli/
-
Ein simples Beispiel mit dem phpMailer (das ist mal eben zusammengeschrieben, kann man natürlich schöner machen, was den HTML-Code angeht:
HTML
Alles anzeigen<!DOCTYPE html> <html lang="de"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Formmailer</title> </head> <body> <form action="mailer.php" method="post"> <label for="vorname">Vorname:</label> <input type="text" name="vorname" id="vorname" required><br><br> <label for="nachname">Nachname:</label> <input type="text" name="nachname" id="nachname" required><br><br> <label for="email">eMail-Adresse:</label> <input type="text" name="email" id="email" required><br><br> <label for="nachricht">Nachricht:</label> <textarea name="nachricht" id="nachricht" required></textarea><br><br> <input type="submit" value="Senden"> </form> </body> </html>
PHP
Alles anzeigen<?php if (isset($_POST['vorname'])) { $html = "<html> <body> <table> <tr> <td>Vorname: </td> <td>" . $_POST['vorname'] . "</td> </tr> <tr> <td>Nachname: </td> <td>" . $_POST['vorname'] . "</td> </tr> <tr> <td>eMail: </td> <td>" . $_POST['email'] . "</td> </tr> <tr> <td>Nachricht: </td> <td>" . nl2br(htmlentities($_POST['nachricht'], ENT_QUOTES)) . "</td> </tr> </table> </body> </html>"; $text = "Name: " . $_POST['vorname'] . " " . $_POST['nachname'] . "\n"; $text .= "eMail: " . $_POST['email'] . "\n"; $text .= "Nachricht: " . $_POST['nachricht'] . "\n"; include ("./PHPMailer-5.2.26/PHPMailerAutoload.php"); $mail = new phpmailer(); $mail->Host = "mail.mustermann.de"; // Dein SMTP-Server $mail->SMTPAuth = true; // Authentifizierung aktivieren $mail->Port = 25; // SMTP-Port $mail->Mailer = "smtp"; // SMTP aktivieren $mail->IsHTML(true); // HTML-Mail aktivieren $mail->From = "max@mustermann.de"; // Deine eMail-Adresse $mail->FromName = "M.Mustermann"; // Dein Name $mail->Username = "mmustermann"; // SMTP-Username $mail->Password = "passwort"; // SMTP-Passwort $mail->Subject = "Betreff"; // Betreff $mail->AddAddress("willi@mustermann.de"); // Empfänger $mail->msgHTML($html); // HTML-Inhalt $mail->AltBody = $text; // Alternativer Text-Inhalt if (!$mail->send()) echo "Mailer Error: " . $mail->ErrorInfo; else echo "Message sent!"; } ?>
Wie man sieht, wird hier noch die phpMailer-Version 5.2.26 eingesetzt und nicht Version 6.x
Unter PHP 7 kann es dabei zu einem Warning in PHPMailerAutoload.php kommen. Dann muss man
in
ändern
-
Da werden ja auch ganz andere Header der Mail-Funktion übergeben. Trotzdem würde ich die Mail-Funktion meiden. Wenn man sich z.B. den phpMailer mal in Ruhe angesehen hat, wird man nie mehr die mail-Funktion von PHP benutzen. Ein paar Vorteile: SMTP-Authentifizierung, SSL, Attachments, Inline-Grafiken, etc. Und: die Mails landen nicht wegen unsauberen Header im Spam
-
Glaube ich zumindest.
Glauben heißt nicht wissen. Wie sieht der PHP-Code dazu aus?
-
In der Zip-Datei gibt es auch ein Verzeichnis example, da findest du einige Beispiele. Die composer.json ist in der Zip-Datei
-
Bei mysqli_select_db hast du die Parameter vertauscht und mysqli_query braucht zwei Parameter.
-
könntest du mir erklären wir das mache? Habe leider noch nie damit gearbeitet.
Gruß!
Download: https://github.com/PHPMailer/PHPMailer/releases/tag/v5.2.26
Tutorial: https://github.com/PHPMailer/PHPMailer/wiki/Tutorial
-
Das geht auch kannst du ja selber testenDann zeige mir das PHP-Script, mit dem du das gemacht haben willst.
-
Ohne den kompletten Code zu kennen, kann man dir da kaum helfen. Ich habe vor einigen Jahren eine Klasse geschrieben, die sich um das Handling mit MySQL kümmert. Ist zwar auch nicht das Gelbe vom Ei, aber vielleicht hilft dir das weiter, kannst du gerne übernehmen:
PHP
Alles anzeigen<?php /******************************************************************** * * File: class.mysql.php * * Kurzbeschreibung: Klasse fuer MySQL-Handling * * Erstellungsdatum: 17.01.2008 * * Letzte Aenderung: 04.03.2018 * * Autor: M.Scatello * * Copyright 2018 by M.Scatello * ********************************************************************/ class Cmysql { private $mysqli; private $debug; private $log; private $clearLogFile; private $filePointer; //--------------------------------------------------------------- function __construct() { $this->mysqli = 0; $this->debug = false; $this->log = false; $this->clearLogFile = false; $this->filePointer = NULL; } //--------------------------------------------------------------- function __destruct() { if ($this->filePointer) fclose($this->filePointer); } //--------------------------------------------------------------- function enable_debug() { $this->debug = true; } //--------------------------------------------------------------- function enable_log($clearLogFile=false) { $this->log = true; $this->clearLogFile = $clearLogFile; if ($this->clearLogFile) $this->filePointer = fopen ("mysql.log", "w"); else $this->filePointer = fopen ("mysql.log", "a+"); } //--------------------------------------------------------------- function connect_db($hostName, $userName, $pw, $db_name) { $this->mysqli = @mysqli_connect($hostName, $userName, $pw, $db_name); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } return $this->mysqli; } //--------------------------------------------------------------- function db_close() { if ($this->mysqli) { mysqli_close($this->mysqli); $this->mysqli = 0; } } //--------------------------------------------------------------- function select_db($dbName) { $result = false; if ($this->mysqli) $result = mysqli_select_db($this->mysqli, $dbname); if (! result && $this->debug) die ("MySQL-Error: " . $this->error_text()); if ($this->log) $this->logging("Select DB: $dbName"); return $result; } //--------------------------------------------------------------- function real_escape_string($value) { $result = $value; if ($this->mysqli) $result = mysqli_real_escape_string($this->mysqli,$value); return $result; } //--------------------------------------------------------------- function query($query="") { $result = false; if (strlen ($query) && $this->mysqli) $result = @mysqli_query ($this->mysqli,$query); if (! $result && $this->debug) die ("MySQL-Error: <br>Query: $query<br>" . $this->error_text()); if ($this->log) { if (strpos(strtolower($query), "select") !== false) $treffer = @mysqli_num_rows($result); else $treffer = @mysqli_affected_rows($this->mysqli); $this->logging("Query: $query\nTreffer: $treffer"); } return $result; } //--------------------------------------------------------------- function num_fields($value=0) { $result = 0; if ($this->mysqli && $value) $result = @mysqli_num_fields ($value); return $result; } //--------------------------------------------------------------- function get_field_list_from_table($table) { $result = array(); $query = "SHOW FIELDS from `$table`"; $data = $this->query($query); while ($row = $this->fetch_row($data)) $result[] = $row[0]; return $result; } //--------------------------------------------------------------- function num_rows($value) { $result = 0; if ($this->mysqli && $value) $result = @mysqli_num_rows ($value); return $result; } //--------------------------------------------------------------- function has_error() { $result = true; if ($this->mysqli) $result = @mysqli_errno($this->mysqli); return $result; } //--------------------------------------------------------------- function error_text() { $result = false; if ($this->mysqli) $result = @mysqli_error($this->mysqli); return $result; } //--------------------------------------------------------------- function data_seek($value=0, $position=-1) { $result = false; if ($value && $position >= 0 && $this->mysqli) $result = mysqli_data_seek($value, $position); return $result; } //--------------------------------------------------------------- function fetch_array($value=0) { $result = false; if ($value && $this->mysqli) $result = @mysqli_fetch_array($value); return $result; } //--------------------------------------------------------------- function fetch_object($value=0) { $result = false; if ($value && $this->mysqli) $result = @mysqli_fetch_object($value); return $result; } //--------------------------------------------------------------- function fetch_row($value=0) { $result = false; if ($value && $this->mysqli) $result = @mysqli_fetch_row($value); return $result; } //--------------------------------------------------------------- function fetch_all($value=0) { $result = false; if ($value && $this->mysqli) $result = @mysqli_fetch_all($value, MYSQLI_ASSOC); return $result; } //--------------------------------------------------------------- function fetch_assoc($value=0) { $result = false; if ($value && $this->mysqli) $result = @mysqli_fetch_assoc($value); return $result; } //--------------------------------------------------------------- function result($value=0, $num=-1) { $result = false; if ($value && $num >= 0 && $this->mysqli) { mysqli_data_seek($value,$num); $datarow = mysqli_fetch_array($value); $result = $datarow[$num]; } return $result; } //--------------------------------------------------------------- function inserted_id() { $result = false; if ($this->mysqli) $result = mysqli_insert_id($this->mysqli); return $result; } //--------------------------------------------------------------- function check_error() { if ($this->mysqli) { if (mysqli_errno ($this->mysqli)) die ("Datenbankfehler: " . mysqli_error($this->mysqli)); } } //--------------------------------------------------------------- function logging($data) { if ($this->filePointer) { fputs ($this->filePointer, date("d.m.Y - H:i:s") . "\n"); fputs ($this->filePointer, $data . "\n"); fputs ($this->filePointer, "-------------------------------------------------------------------------------------" . "\n"); } } //--------------------------------------------------------------- function export_record($table, $id) { $result = false; $columns = $this->get_field_list_from_table($table); $query = "Select " . implode(", ", $columns) . " from `$table` where `id`=$id"; $result = $this->query($query); if ($this->has_error()) return $result; $data = $this->fetch_assoc($result); $columns = array(); foreach ($data as $key => $value) $columns[] = "`$key`='$value'"; $output = implode(",", $columns); $fp = @fopen ("export.txt", "a+"); if ($fp) { fputs($fp, $output . "\n"); fclose($fp); $result = true; } return $result; } } ?>
-
Aber frage mal dazu die php leute die wissen das besser.
Genau! Man kann nicht alles wissen, aber dann muss man nicht zu allem seinen Kommentar abgeben. Alles was du zu diesem Thema geschrieben hast ist falsch!
Dein Problem ist, dass du eine Textmail versendest, da kann man nichts großartig formatieren. Die mail-Funktion von PHP sollte man sowieso meiden, da hat man in der Regel nur Probleme mit. Das ist auch der Grund, warum deine Mail im Spam landet. Nutze eine fertige Mailer-Klasse w.z.B. den phpMailer. Damit kann man problemlos HTML-Mails versenden, die dann auch nicht so schnell als Spam abgestempelt werden.
-
Respekt, einen 8 Jahre alten Thread wieder zum Leben zu erwecken, macht (zum Glück) auch nicht jeder.
-
Auch wenn PDO einige Vorteile bietet, würde ich einem Anfänger, der die mysql_*-Funktionen eleminieren will, empfehlen, auf mysqli_* umzusteigen, da dieser Umstieg deutlich einfacher ist.
-