Van olyan oldal, ahol megtanulhatnám a PHPMailer használtát?
"Viszont egyszerűbb..."
Én még működő mail() függvényt nem láttam. De próbáld ki, hátha nálad menni fog.
Ez lenne, amire én gondoltam kiegészítve a tiéddel: [link]
Belinkelem a nethely oldalát is: [link]
A végén a a trágyat és a szöveget nem írtam át, mert ehhez lenne még kérdésem: Ha nekem van egy html kódom, amiben van mondjuk két címke és egy gomb a küldéshez (submit), akkor ha a form action-nél a a fenti php-t hívom, akkor annak a két cinmmének a tartalmát küldi el?
"A tiédben nincs megadva, hogy konkrétan hová küldje az email-t..."
De igen, ez a rész:
if ( is_array($toAddress) ) {
foreach ($toAddress as $k => $v) {
$mail->AddAddress($v[0], $v[1]);
};
} else {
$mail->AddAddress($toAddress, $toName);
};
Azért van így megoldva, mert több címzettet is meg lehet adni. Ha a függvény azt érzékeli, hogy a $toAddress változó egy tömb, akkor végigiterál rajta és egyesével átadja a benne lévő címzetteket a $mail->AddAddress függvénynek.
Amit korábban küldtem, ott épp ez van:
sendMail(
"domain.hu hírlevél feliratkozás",
"info@domain.hu",
"Ez a cégnevem",
array(array("info@domain.hu", "Ez a cégnevem")),
"domain.hu üzenet",
$messageBody
);
Ebben az esetben csak egy címzett van (az info@domain.hu, ami most történetesen ugyanaz, mint a feladó, de ez csak a példa miatt van így), ezt nem is kellene tömbbe rakni, de ha több lenne, akkor így nézne ki:
sendMail(
"domain.hu hírlevél feliratkozás",
"info@domain.hu",
"Ez a cégnevem",
array(
array("cimzett1@cimzett.hu", "Első címzett neve"),
array("cimzett2@cimzett.hu", "Második címzett neve"),
array("cimzett3@cimzett.hu", "Harmadik címzett neve")
),
"domain.hu üzenet",
$messageBody
);
És itt a függ szignatúra:
function sendMail($fromName, $fromMail, $toName, $toAddress, $Subject, $mailBody, $attachments = null);
Ez alapján, a paraméterek sorban:
- küldő neve (bármi lehet)
- küldő email címe
- címzett neve (bármi lehet)
- címzett(ek) email címe
- tárgy
- az email törzse (a szöveg)
- mellékletek (alapértelmezetten nincs)
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->From = $fromMail;
$mail->FromName = $fromName;
$mail->Username = "nethelyes email címed";
$mail->Password = "nehelyes email címed jelszava";
$mail->Host = "mail.nethely.hu";
$mail->Port = 465;
$mail->Encoding = "base64";
$mail->ContentType = "text/html";
$mail->CharSet = "UTF-8";
Megnéztem amit írtál és értelmeztem és ha nem gond küldenék egy újat, ha van rá pár perced, akkor légyszives nézd meg.
Könnyebben tanulok, ha van egy működő és utána toldozom-foldozom, ahol kell. Ebben nincs ssl hitelesítés, ezért átírtam a 465-ös portot 1025-re (elvileg ez az ssl nélkülié). Ha van benne hiba, akkor légyszives írd le, hogy mi az, illetve a végén az email tárgya, szövege stb. elé kell a $mail-> ?
Előre is köszönöm!
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'phpmailer/src/Exception.php';
require 'phpmailer/src/PHPMailer.php';
require 'phpmailer/src/SMTP.php';
function sendMail($fromName, $fromMail, $toName, $toAddress, $Subject, $mailBody, $attachments = null) {
date_default_timezone_set("Europe/Budapest");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->From = "emailem@domainem.com";
$mail->FromName = "domainem";
$mail->AddAddress = "címzett email", "emailhez tartozó név");
$mail->AddAddress = "címzett email";
$mail->Username = "domain nevem";
$mail->Password = "domain email jelszava";
$mail->Host = "mail.nethely.hu";
$mail->Port = 1025;
$mail->Encoding = "base64";
$mail->ContentType = "text/html";
$mail->CharSet = "UTF-8";
$mail->FromName = "küldő neve"
$mail->FromMail = "küldő email címe"
$mail->ToName = "címzett neve"
$mail->ToAddress = "címzett eimail címe"
$Subject = "email tárgya"
$Mailbody = "email szövege"
$attachments = 0
?>
Ezen mit kell néznem?
Majdnem ugyanaz, mint amit előzőleg küldtél.
Ez itt: $mail->AddAddress = "címzett email", "emailhez tartozó név");
Szintaktikailag nem jó.
Az utolsó 7 sor végéről pedig hiányzik a pontosvessző.
Be kell helyettesíteni az adatokat, a $mail->SMTPDebug = 1-re állítani a tesztelés idejére, és megnézni, mit ír ki a php, ha lefuttatod.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!