• 09-11-2019, 17:32:46
    #1
    Arkadaşlar merhaba;

    phpmailler kullanarak sitem üzerinden mail gönderimi gerçekleştiriyorum. Mail gönderimini site içerisinde ve yönetim panelinde farklı noktalar dan gerçekleştirdiğim için bir function içine aldım. Sitenin/Yönetim panelinin herhangi bir yerinden çağırdığım bu function doğru bir şekilde çalışarak tam istediğim gibi mail gönderimi yapıyor ancak özellikle sitenin ön tarafından bu kodlar çağrıldığında anlamsız bir şekilde mail de konu alanı olmadan gönderim yapıyor.

    Kullandığım phpmailler kodları;
    $mail = new PHPMailer();
                    $mail->IsSMTP();
                    $mail->SMTPDebug = 1; // Hata ayıklama değişkeni: 1 = hata ve mesaj gösterir, 2 = sadece mesaj gösterir
                    $mail->SMTPAuth = true; //SMTP doğrulama olmalı ve bu değer değişmemeli
                    $mail->SMTPSecure = $SSL; // Normal bağlantı için tls , güvenli bağlantı için ssl yazın
                    $mail->Host = $SmtpServer; // Mail sunucusunun adresi (IP de olabilir)
                    $mail->Port = $SmtpPort; // Normal bağlantı için 587, güvenli bağlantı için 465 yazın
                    $mail->IsHTML(true);
                    $mail->SetLanguage("tr", "phpmailer/language");
                    $mail->CharSet  = "utf-8";
                    $mail->Username = $MailAdresi; // Gönderici adresinizin sunucudaki kullanıcı adı (e-posta adresiniz)
                    $mail->Password = $MailSifre; // Mail adresimizin sifresi
                    $mail->SetFrom($MailAdresi, $GorAd); // Mail atıldığında gorulecek isim ve email (genelde yukarıdaki username kullanılır)
                    $mail->AddAddress($AliciMail); // Mailin gönderileceği alıcı adres
                    $mail->Subject = "Emir USTAOĞLU | İletişim Formu"; // Email konusu
                    $mail->Body = $MailIcerik; // Mailin içeriği
                    if (!$mail->Send()) {
                        echo "Email Gönderim Hatasi: " . $mail->ErrorInfo;
                    } else {
                        $_SESSION['Basari'] = "Teşekkrüler, e-postanız başarıyla gönderildi.";
                    }
    Yukarıda kodları yönetim panelinden çağırdığımda sıkıntısız mail gönderimi gerçekleşiyor ancak sitenin ön tarafından yaptığımda anlamsız bir şekilde subject görünmüyor maillerde :S

    Konuyla ilgili olarak yardımlarınızı rica ederim.
  • 09-11-2019, 18:45:52
    #2
    Konu bölümünü direk yazmışsınız orada bir hata olmaması gerekiyor. Fonksiyonu tüm kodları ile eklermisiniz. Birde gönderim sırasında hata veriyor mu.
  • 12-11-2019, 15:54:38
    #3
    Sanalgezgin57 adlı üyeden alıntı: mesajı görüntüle
    Konu bölümünü direk yazmışsınız orada bir hata olmaması gerekiyor. Fonksiyonu tüm kodları ile eklermisiniz. Birde gönderim sırasında hata veriyor mu.
    Hocam merhaba;

    Kusura bakmayın gecikmeli oldu dönüşüm. Gönderim esnasında bir hata almıyorum hayır mail sorunsuz olarak gidiyor functionu yarıda kesip
    echo $mail->Subject exit;
    yazdığımda konuyuda ekliyor ancak ilginç bir şekilde gelen mail de konu görünmüyor.

    Bu functionu sitenin ön yüzünden çalıştırırsam örneğin iletişim formundan veya e-bülten aboneliği formundan konu hiç bir şekilde gelmiyor ancak aynı functionu kullanarak yönetim kısmından gönderim yaparsam konu yer alıyor.

    Kullanmış olduğum function;

    function Onay($UyeAdi, $UyeMail, $UyeUniq, $VerBag)
    {
    
        $MailOku = mysqli_query($VerBag, "select * from mailayarlari LIMIT 1");
        $BOkuMail = mysqli_fetch_assoc($MailOku);
        if (mysqli_num_rows($MailOku) > 0) {
            $BOkuMail['EnableSsl'] == '1' ? 'true' : 'false';
            $SmtpServer = $BOkuMail['SmtpServer'];
            $SSL = $BOkuMail['EnableSsl'] == '1' ? 'ssl' : 'tls';
            $MailAdresi = $BOkuMail['MailKullaniciAdi'];
            $MailSifre = $BOkuMail['MailSifre'];
            $SmtpPort = $BOkuMail['SmtpPort'];
            $GorAd = $BOkuMail['GorunecekAd'];
            $AliciMail = $UyeMail;
            $UyeOnayLinki = "Onay&User=" . $UyeUniq;
            $MailIcerik = '
                    Merhaba ' . $UyeAdi . ';<br>
                    Lütfen bilgileriniz onaylayınız.
                    ';
            require("class.phpmailer.php");
            $mail = new PHPMailer();
            $mail->IsSMTP();
            $mail->SMTPDebug = 1; // Hata ayıklama değişkeni: 1 = hata ve mesaj gösterir, 2 = sadece mesaj gösterir
            $mail->SMTPAuth = true; //SMTP doğrulama olmalı ve bu değer değişmemeli
            $mail->SMTPSecure = $SSL; // Normal bağlantı için tls , güvenli bağlantı için ssl yazın
            $mail->Host = $SmtpServer; // Mail sunucusunun adresi (IP de olabilir)
            $mail->Port = $SmtpPort; // Normal bağlantı için 587, güvenli bağlantı için 465 yazın
            $mail->IsHTML(true);
            $mail->SetLanguage("tr", "phpmailer/language");
            $mail->CharSet  = "utf-8";
            $mail->Username = $MailAdresi; // Gönderici adresinizin sunucudaki kullanıcı adı (e-posta adresiniz)
            $mail->Password = $MailSifre; // Mail adresimizin sifresi
            $mail->SetFrom($MailAdresi, $GorAd); // Mail atıldığında gorulecek isim ve email (genelde yukarıdaki username kullanılır)
            $mail->AddAddress($AliciMail); // Mailin gönderileceği alıcı adres
            $mail->Subject = "Lütfen Bilgilerinizi Onaylayınız."; // Email konu başlığı
            $mail->Body = $MailIcerik; // Mailin içeriği
            if (!$mail->Send()) {
                return 0;
            } else {
                return 1;
            }
        }
    }
    Yukarıda vermiş olduğum function hem sitenin ön yüzünden hem de yönetim tarafından çalıştırılabilmektedir. Aynı kullanım ile çalıştırıldığında yönetim paneli üzerinden konu bilgisi mail de yer alırken site arayüzünden çalıştırıldığında mail de konu bilgisi yazmamaktadır.
  • 13-11-2019, 09:34:54
    #4
    Merhaba, aslında nereden çalıştırdığınızın peki bir önemi yok zira Subject'i string olarak set etmişsiniz. Aşağıdaki kodu ekleyip debug çıktısını paylaşabilir misiniz lütfen?

    $mail->SMTPDebug = 3;
  • 13-11-2019, 09:50:17
    #5
    fonksiyonu çalıştırdığınız kısmı yollaya bilirmisiniz? hangi deyerleri yolluyorsunuz