2016-04-01 22 views
-1

İşte kodum. Gerçekten bu hatayı alıyorum benim code.I yanlış olduğunu bilmek gerekir: - ") (SMTP bağlamak başarısız https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting"Neden PHPMailer kullanarak e-posta gönderemiyorum?

<?php 
require_once 'PHPMailer/class.phpmailer.php'; 
    //sending mail for verification 
    $mail = new PHPMailer(); 

$mail->IsSMTP(); 
$mail->SMTPDebug = 2; 
$mail->SMTPAuth = true; 
$mail->Port = 587; 
$mail->Host = 'mail.mydomain.com'; 
$mail->Username = 'myusername'; // Enter your SMTP username 
$mail->Password = "mypassword"; // SMTP password 


$mail->From = "[email protected]"; 
$mail->FromName = " Verification"; 
$mail->AddAddress("[email protected]", "Name"); 

$mail->AddReplyTo("[email protected]", "Information"); 




$mail->IsHTML(true);         

$mail->Subject = "Here is the subject"; 
$mail->Body = "This is the HTML message body <b>in bold!</b>"; 
$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; 

if($mail->Send()){ 
echo "Mail sent"; 
}else{ 
echo 'Mailer Error: ' . $mail->ErrorInfo; 
} 
?> 

Benim kimlik correct.I bağlantıyı takip mi vardır hata mesajı ve orada belirtilen hemen hemen her şeyi denedim ama hiçbir şey benim için işe yaramaz gibi görünüyor. Bu benim orijinal kodumun en kısa ve kesilmiş halidir, bu benim için bile çalışmadığımı söylemektir.

+0

Bu "echo 'Mailer Hatası:' gibi PHP mailer hatasını kontrol etmelisiniz. $ mail-> ErrorInfo; ' –

+0

PHPMailer'da her türlü sorunu nasıl teşhis edip düzeltebileceğinizi gösteren bağlantıyı takip etmediniz mi? Ya da yaptıysan, ne denediğini bilmemize gerek olmadığını mı düşünüyorsun? – Synchro

+0

Ayrıca, PHPMailer'in eski bir sürümünü kullanıyorsunuz ve kodunuzu eski bir örneğe dayandırdınız. Yardım almak istiyorsanız, en azından az miktarda çaba harcamalısınız. – Synchro

cevap

-1

Bu sorunu giderdim. İşte yaptığım değişiklikler ve gayet iyi çalışıyor.

<?php 
require_once 'PHPMailer/class.phpmailer.php'; 
require_once 'assets/import/PHPMailer/class.smtp.php'; //I added this here which wasn't added in original script 
    //sending mail for verification 
    $mail = new PHPMailer(); 

$mail->IsSMTP(); 
$mail->SMTPDebug = 2; 
$mail->SMTPAuth = true; 
$mail->Port = 587; 
$mail->Host = 'mail.mydomain.com'; 
$mail->Username = 'myusername'; // Enter your SMTP username 
$mail->Password = "mypassword"; // SMTP password 


$mail->From = "[email protected]"; 
$mail->FromName = " Verification"; 
$mail->AddAddress("[email protected]", "Name"); 

$mail->AddReplyTo("[email protected]", "Information"); 

// Adding SMTPOption is the main thing that solved my problem. I got this from troubleshooting page of PHPMailer. And they 
// recommended to do this only if every other option fails. 

$mail->SMTPOptions = array(
    'ssl' => array(
     'verify_peer' => false, 
     'verify_peer_name' => false, 
     'allow_self_signed' => true 
    ) 
); 


$mail->IsHTML(true);         

$mail->Subject = "Here is the subject"; 
$mail->Body = "This is the HTML message body <b>in bold!</b>"; 
$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; 

if($mail->Send()){ 
echo "Mail sent"; 
}else{ 
echo 'Mailer Error: ' . $mail->ErrorInfo; 
} 
?> 
+0

Uygulamanızı kullanan herkesin güvenliğinden ödün vermek yerine, SSL sertifikası doğrulama hatalarını ele almanın doğru yolu, bunu güvenli olmayan bir posta sunucusu çalıştırmamanız için ISS'nize bildirmektir. – Synchro

+0

Bu, tam olarak çalıştığım koddur. Kullanmakta olduğum giriş kimlik bilgileri veya E-posta kimlikleri size söyleyemiyorum. Sorunu teşhis etmek için yeterince bilgi verdiğime eminim. Eğer değilse o zaman tam olarak ne aradığınızı söyleyin. Bir şey söylediğin her zaman 'eskimiş' kelimesini kötüye kullandın. Doğru alan adı, şifre ve diğer her şeyi kullanıyorum ve sizden veya bunu bilmemizi istemiyorum. Bana bunun eskimediği için kaçmayacağını söylemeye mi çalışıyorsun? –

+0

"Eski" tamamen uygun. Sorun giderme kılavuzundaki ilk (veya ikinci) paragrafı okumadınız; Hata mesajınızı rehberde aramadınız (tam olarak oradadır ve nedenini teşhis etmenizi söyler). Bir şekilde temel talimatları okuma konusundaki yetersizliğim benim hatam mı? – Synchro