Domain ellenőrzés:
Jelenlegi hely
Hogy tudok emailt küldeni?
Sajnos az elmúlt időszakban azt tapasztaltuk, hogy egyes oldalakon keresztül - melyek nem tették meg az alapvető biztonsági intézkedéseket - elszaporodtak a kéretlen levelek küldése, ezért szolgáltatásaink megfelelő biztosítása érdekében azonnali intézkedésként felfüggesztettük a PHP mail() függvény használatát.
Milyen következményei lehetnek a mail() függvény letiltásának?
Amennyiben az Ön honlapján például regisztráció utáni email értesítés, visszaigazoló email küldés, kapcsolati oldal, mely emailt küld, vagy bármilyen levelezéssel kapcsolatos szolgáltatás található, akkor ezek a funkciók nem fognak működni amennyiben a mail() függvény használatával lettek megvalósítva.
Milyen más lehetőségem van, hogy ismét működjenek ezek a funkciók is?
- Használhatja a PHP beépített másik levélküldő függvényét, ez az mb_send_mail() (http://php.net/manual/en/function.mb-send-mail.php)
- Léteznek előre megírt szkriptek is, mellyel majdnem ugyan olyan egyszerűen küldhetők emailek, mint a mail() függvénnyel, ezek például a SwiftMailer (http://swiftmailer.org/), vagy PHPMailer (http://phpmailer.worxware.com/).
- használhat saját SMTP levélküldést, mely PHP-val is viszonylag könnyen megvalósítható.
Hogyan használhatom az mb_send_mail()-t?
- Cserélje le a weboldal forráskódjában a mail() függvényt a következőre (a lenti mintaprogram beállításai weboldaltól függően eltérhet).
if(filter_var($cimzett_emailcime, FILTER_VALIDATE_EMAIL)) {
// Állítsuk be a karakterkódolást, ez oldaltól és a forráskód kódolásától függően eltérhet
mb_internal_encoding('utf-8');
// Állítsuk be a környezetet
setlocale(LC_CTYPE, 'hu_HU');
// Címzett beállítása
$to = $cimzett_emailcime;
// Tárgy beállítása
$subject = 'Üzenet tárgya';
// Üzenet beállítása
$body = 'Üzenet';
// Egyéb fejlécek beállítása
$headers = 'Content-type: text/html; charset=utf-8'."\n";
// Feladó beállítása a fejlécben
$headers .= 'From:Feladó neve <felado@email-címe.hu>';
// Levél elküldése
mb_send_mail($to, $subject, $body, $headers);
}
Hogyan használhatom a SwiftMailert?
- 1. Töltse le a SwiftMailert innen: http://swiftmailer.org/
- 2. Kitömörítés után, másolja fel weboldala tárhelyére a htdocs mappán belülre.
- 3. Cserélje le a weboldal forráskódjában a mail() függvényt a következőre (a lenti mintaprogram beállításai weboldaltól függően eltérhet).
// Ez a sor betölti a SwiftMailert. Figyeljen, hogy a SwiftMailer könyvtár elérési útja megfelelő legyen.
require_once 'swift/lib/swift_required.php';
// SMTP csatlakozás beállítása
$smtp = Swift_SmtpTransport::newInstance('localhost', 25);
// új levél készítése
$mailer = Swift_Mailer::newInstance($smtp);
$message = Swift_Message::newInstance('Levél tárgya');
$message
// Címzett beállítása
->setTo('cimzett@email-cime.hu' => 'Címzett neve')
// Feladó beállítása
->setFrom('felado@email-cime.hu' => 'Feladó neve')
// Az email szövege
->setBody('Üzenet szövege...')
;
// Levél elküldése
$mailer->send($message);
Hogyan használhatom a PHPMailert?
- 1. Töltse le a PHPMailert innen: http://phpmailer.worxware.com/.
- 2. Másolja fel weboldala tárhelyére a htdocs mappán belülre.
- 3. Cserélje le a weboldal forráskódjában a mail() függvényt a következőre. (a lenti mintaprogram beállításai weboldaltól függően eltérhet)
// Ez a sor betölti a PHPMailer fájlt. Figyeljen, hogy a PHPMailer könyvtár elérési útja megfelelő legyen.
include 'phpmailer/class.phpmailer.php';
$mail = new PHPMailer();
// ezzel a sorral jelöljük, hogy SMTP-vel küldjük a levelet.
$mail->IsSMTP();
$mail->Host = "localhost";
$mail->SMTPAuth = false; // kell-e authentikáció
$mail->From = "sajat@email-cime.hu";
$mail->FromName = "Saját Neve";
// ez egymás után többször is szerepelhet, ha több címzett van
$mail->AddAddress("címzett@email-címe.hu");
// beállíthat sortöréseket is, nem kötelező beállítás, de ajánlott
$mail->WordWrap = 70;
// Ha a levél tartalma HTML, akkor true, egyébként false
$mail->IsHTML(true);
$mail->Subject = "email tárgya";
$mail->Body = "aki tud html levelet fogadni, ezt látja";
// nem kötelező beállítás, elhagyható
$mail->AltBody = "aki nem tud html levelet fogadni, ezt látja";
// Az üzenet elküldése
$mail->Send();
Mennyiben befolyásolja ez a webmailt és a levelezőprogramomat?
A mail() függvény felfüggesztése, csak a weboldalakon keresztüli levélküldést érinti, a webes levelezőt (SquirrelMail) és a POP3-on vagy IMAP-on keresztüli levelezést nem, azok továbbra is változatlanul használhatóak.
Hová fordulhatok, ha valami mégsem működne, vagy egyéb kérdésem lenne?
Kérdéseivel forduljon bátran ügyfélszolgálatunkhoz emailben, vagy telefonon keresztül.