php smtp mail gönderimi
Herkeze Merhaba; Aşağıdaki kod çalışıyor öncelikle mail bilgilerini dikkate almayın. Benim problemim bu kodu if koşullu ifadesinin içine aldığımda hata alıyorum sürekli değişik kodlarda denedim.
erbilen.net te yazan ''PHPMailer Sınıfı ile Gmail Üzerinden E-Posta Gönderimi'' konusunuda okudum. Büyük ihtimal ben php yazım kurallarında bir kaçını yok sayıyorum gibi geliyor.
DERDİM;
if (isset($_POST['register'])) {
kodu buraya atınca çalışmıyor.
}
Bu hatayı alıyorum.
Parse error: syntax error, unexpected 'use' (T_USE) in C:xampphtdocstest.php on line 6
Değişik yazımların bazılarında bu hatayı
Fatal error: Uncaught Error: Class 'PHPMailer' not found in C:xampphtdocstest.php:12 Stack trace: #0 {main} thrown in C:xampphtdocstest.php on line 12
<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
use PHPMailerPHPMailerSMTP;
require 'PHPMailer/PHPMailer.php';
require 'PHPMailer/Exception.php';
require 'PHPMailer/SMTP.php';
$mail = new PHPMailer(true);
try {
$mail->SMTPDebug = 0;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'şifre';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
$mail->setFrom('[email protected]', 'ahmet');
$mail->addAddress('[email protected]', 'Alıcı Ad Soyad');
$mail->addAddress('[email protected]');
$mail->isHTML(true);
$mail->Subject = 'Üyelik işlemi';
$mail->Body = 'uzun uaf';
$mail->send();
echo 'Tebrikler! Email başarıyla gönderildi!';
} catch (Exception $e) {
echo "Ops! Email iletilemedi. Hata: {$mail->ErrorInfo}";
}
?>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
require 'PHPMailer/Exception.php';
require 'PHPMailer/PHPMailer.php';
require 'PHPMailer/SMTP.php';
$mail = new PHPMailer(true);
if ($_POST['register']) {
try {
$mail->SMTPDebug = 0;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'şifre';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
$mail->setFrom('[email protected]', 'ahmet');
$mail->addAddress('[email protected]', 'Alıcı Ad Soyad');
$mail->addAddress('[email protected]');
$mail->isHTML(true);
$mail->Subject = 'Üyelik işlemi';
$mail->Body = 'uzun uaf';
$mail->send();
echo 'Tebrikler! Email başarıyla gönderildi!';
} catch (Exception $e) {
echo "Ops! Email iletilemedi. Hata: {$mail->ErrorInfo}";
}
}
?>
frdgk kardeşim cevap için teşekkürler. Bende sadece koşullu ifadenin dışına use olan kısımlarını taşıdım. Dün biraz uğraşıp halletmiştim. Senin cevabınında çalışıyor olması lazım.
okumusmr kardeşim cevabını denemedim ama burda sıkıntı aslında şu benim anladığım kadarı ile ''use'' lar süslü parantezler içinde çalışmıyor.
İsset yerine empty kullananırsan sorun çözülebilir. Ben kendi problemimi öyle çözmüştüm.
if(empty($_POST['register']) {
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
require 'PHPMailer/Exception.php';
require 'PHPMailer/PHPMailer.php';
require 'PHPMailer/SMTP.php';
$mail = new PHPMailer(true);
if (isset($_POST['register'])) {
try {
$mail->SMTPDebug = 0;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'şifre';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
$mail->setFrom('[email protected]', 'ahmet');
$mail->addAddress('[email protected]', 'Alıcı Ad Soyad');
$mail->addAddress('[email protected]');
$mail->isHTML(true);
$mail->Subject = 'Üyelik işlemi';
$mail->Body = 'uzun uaf';
$mail->send();
echo 'Tebrikler! Email başarıyla gönderildi!';
} catch (Exception $e) {
echo "Ops! Email iletilemedi. Hata: {$mail->ErrorInfo}";
}
}
}