Şimdi Ara

bir türlü siteden mail yollatamadım

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
11
Cevap
0
Favori
582
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar emlak sitemde rezervasyon yapıldıktan sonra müşteriye bilgi maili gitmesi gerekıyor ancak bir türlü göndermeyi basaramadım.mail.class.php dosyasının tüm kodları aşağıda.yardımcı olursanız sevinirim.

    <?php


    class bsiMail
    {
    private $isSMTP = false;
    private $emailFrom = '';
    private $emailReplyTo = '';
    private $smtpHost = NULL;
    private $smtpPort = NULL;
    private $smtpUserName = NULL;
    private $smtpPassword = NULL;
    private $emailTo = '';
    private $emailSubject = '';
    private $emailBody = '';


    function bsiMail() {
    /**
    * Global Ref: conf.class.php
    **/
    global $bsiCore;
    $this->isSMTP = false;
    if($this->isSMTP == true){
    require_once "Mail.php"; // PEAR Mail package
    require_once ('Mail/mime.php'); // PEAR Mail_Mime package
    $this->emailFrom = $bsiCore->config['conf_apartment_name']."<info@site.com>";
    }else{
    $this->emailFrom = $bsiCore->config['conf_apartment_name']."<".$bsiCore->config['conf_apartment_email'].">";
    }
    $this->emailReplyTo = $bsiCore->config['conf_apartment_email'];
    $this->smtpHost = "mail.site.com";
    $this->smtpPort = intval(587);
    $this->smtpUserName = "info@site.com";
    $this->smtpPassword = "buraya şifreyi yazdım";
    if(!$this->smtpPort){
    $this->smtpPort = NULL;
    }
    }

    public function sendEMail($emailTo, $emailSubject, $emailBody){
    $this->emailTo = $emailTo;
    $this->emailSubject = $emailSubject;
    $this->emailBody = $emailBody;
    return (($this->isSMTP == true)? $this->sendSMTPMail() : $this->sendPHPMail());
    }

    /* Send Email using PHP Mail Function */
    public function sendPHPMail(){
    // To send HTML mail, the Content-type header must be set
    $emailHeaders = 'MIME-Version: 1.0' . "\r\n";
    $emailHeaders .= 'Content-type: text/html; charset=utf-8' . "\r\n";

    // Additional headers
    $emailHeaders .= 'reply-to: '.$this->emailReplyTo.'' . "\r\n";
    $emailHeaders .= 'From: '.$this->emailFrom.'' . "\r\n";

    $retmsg = mail($this->emailTo, $this->emailSubject, $this->emailBody, $emailHeaders);
    // Mail it
    if ($retmsg) {
    return true;
    }else {
    return "Failed to sent Message!";
    }
    }

    /* Send Email using SMTP authentication */
    public function sendSMTPMail(){
    $emailHeaders = array (
    'From' => $this->emailFrom,
    'To' => $this->emailTo,
    'reply-to' => $this->emailReplyTo,
    'Subject' => $this->emailSubject,
    'Mime-Version' => "1.0",
    'Content-Type' => "text/html",
    'charset' => "utf-8",
    'Content-Transfer-Encoding' => "7bit");
    $smtpAuthData = array (
    'host' => $this->smtpHost,
    'port' => $this->smtpPort,
    'auth' => true,
    'username' => $this->smtpUserName,
    'password' => $this->smtpPassword);

    $smtpMail = Mail::factory('smtp', $smtpAuthData);
    $smtpMsg = $smtpMail->send($this->emailTo, $emailHeaders, $this->emailBody);

    if (PEAR::isError($smtpMail)) {
    return $smtpMail->getMessage();
    }else {
    return true;
    }
    }

    public function loadEmailContent() {
    $sql = mysql_query("SELECT * FROM bsi_email_contents WHERE email_name = 'Confirmation Email'");
    $currentrow = mysql_fetch_assoc($sql);
    $emailContent = array('subject'=> $currentrow["email_subject"], 'body'=> $currentrow["email_text"]);
    return $emailContent;
    }
    }
    ?>

    Bu kodlarda hata var mı?Ne yaptıysam mail yollatamadım.



    < Bu mesaj bu kişi tarafından değiştirildi nco_90000 -- 15 Ocak 2014; 14:53:17 >







  • smtpHost = "mail.site.com"

    mail.site.com diye bir smtp host oldugunu düşünmüyorum

    Host: smtp.gmail.com
    Port: 587
    Kullanıcı: Kendi Gmail adresin
    Şifre: Kendi Gmail şifren

    biçiminde bir dene istersen.
  • ben natro kullanıyorum.natrodaki maillerin smtp hostu mail.website.com şeklinde
  • Merhaba,

    Sanırım kodları direk internetten alıp gerekli yerleri editleyerek kullandınız fakat aldığınız kodlar bu şekilde kullanılmıyor, size bir kütüphane gibi bi'şey sunulmuş siz bunu projenizin dosyaları arasına ekleyip kullanmak istediğiniz sayfada include "mail.class.php"; diye ekleyerek kullanmalısınız. Ama size kişisel tavsiyem bunu kullanmayın bunun yerine daha kapsamlı ve güncel olan PhpMailler'ı tavsiye ederim. Bu adreste her türlü dökümantasyon ve örnek kod mevcut inceleyerek kolaylıkla kullanabilirsiniz:https://github.com/Synchro/PHPMailer . Bende natro kullanıyorum ve phpmailler ile geliştirdiğim bir projem var oldukça memnunum. Sorun yaşadığınız yerde sorabilirsiniz.

    Kolay gelsin...




  • evet booking-confirm dosyamda mail.class.php dosyası includew edilmiş durumda.Ancak sorunum şu neden bu kodlarla mail göndermiyor?bu kodlarda bir hata mı var?Bahsettiginiz sayfadan phpmailleri kullanacagım ancak bu benım sayfadaki booking yapacak vatandasın göndereceği form olacagı için bu benim kodlarıma uygun hale nasıl getiririm.?vewya getirmek zorundamıyım.yoksa direk php mailleri kurup smtp ayarlarımı yaptıgımda çalışacak mı?
  • quote:

    Orijinalden alıntı: nco_90000

    evet booking-confirm dosyamda mail.class.php dosyası includew edilmiş durumda.Ancak sorunum şu neden bu kodlarla mail göndermiyor?bu kodlarda bir hata mı var?Bahsettiginiz sayfadan phpmailleri kullanacagım ancak bu benım sayfadaki booking yapacak vatandasın göndereceği form olacagı için bu benim kodlarıma uygun hale nasıl getiririm.?vewya getirmek zorundamıyım.yoksa direk php mailleri kurup smtp ayarlarımı yaptıgımda çalışacak mı?

    Kodlar neden çalışmıyor çünkü bu bir kütüphanedir ve direkt olarak projenizin dosyaları arasına ekleyip include ile kullanmanız gerekir üzerinde hiç bir değişiklik yapmadan. Ayrıca bu bir class'dır direkt olarak sadece include yaparak kullanamazsınız bir değişken oluşturup bu class'ı değişkene atamalısınız. Tıpkı PhpMaillerdeki şu kodlar gibi:

     
    <?php
    require 'PHPMailerAutoload.php';

    $mail = new PHPMailer; // bahsettiğim değişken oluşturarak class kullanma kısmı daha sonrada bu class üzerinden işlem yapılıyor

    $mail->isSMTP();
    $mail->Host = 'smtp1.example.com;smtp2.example.com';
    $mail->SMTPAuth = true;
    $mail->Username = 'jswan';
    $mail->Password = 'secret';
    $mail->SMTPSecure = 'tls';


    Bu arada object oriented programlama konularına tekrar bakmanızı tavsiye ediyorum class gibi yapılar için object oriented programlama bilmek gerekir.




  • iyide bu zaten var olan bir script.yanı bu mailin çalısması lazım değilmi?tabi daha bu yazdıgım kodlardan haric conf.class.php de var.ondada mail ile ilgili kodlar var.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • özgür beyin kullanıcısına yanıt
    özgür beyin kardeşim anladıgım kadarıyla php mailer dediğimiz mail gönderme işine yarayan bir yazılım.şimdi benim booking-process.php isimli bir dosyam var.kodları aşağıda

    <?php
    session_start();
    include("includes/db.conn.php");
    include("includes/conf.class.php");
    include("includes/mail.class.php");
    include("includes/process.class.php");
    $bookprs = new BookingProcess();
    switch($bookprs->paymentGatewayCode){
    case "poa": processPayOnArrival();break;
    case "pp": processPayPal();break;
    default: processOther();
    }
    /* PAY ON ARIVAL: MANUAL PAYMENT */
    function processPayOnArrival(){
    global $bookprs;
    global $bsiCore;
    $bsiMail = new bsiMail();
    $emailContent = $bsiMail->loadEmailContent();
    $subject = $emailContent['subject'];

    mysql_query("UPDATE bsi_bookings SET payment_amount='".$bookprs->totalPaymentAmount."', payment_success=true WHERE booking_id = ".$bookprs->bookingId);
    mysql_query("UPDATE bsi_clients SET existing_client = 1 WHERE email = '".$bookprs->clientEmail."'");

    $emailBody = "Dear ".$bookprs->clientName.",<br><br>";
    $emailBody .= $emailContent['body']."<br><br>";
    $emailBody .= $bookprs->invoiceHtml;
    $emailBody .= '<br><br>Regards,<br>'.$bsiCore->config['conf_apartment_name'].'<br>'.$bsiCore->config['conf_apartment_phone'];
    $emailBody .= '<br><br><font style=\"color:#F00; font-size:10px;\">[ You will need to carry a print out of this e-mail and present it to the hotel on arrival and check-in. This e-mail is the confirmation voucher for your booking. ]</font>';
    $returnMsg = $bsiMail->sendEMail($bookprs->clientEmail, $subject, $emailBody);
    if($returnMsg == true) {
    $notifyEmailSubject = "Booking no.".$bookprs->bookingId." - Notification of Apartment Booking by ".$bookprs->clientName;
    $notifynMsg = $bsiMail->sendEMail($bsiCore->config['conf_apartment_email'], $notifyEmailSubject, $bookprs->invoiceHtml);
    header('Location:booking-confirm.php?success_code=1');
    die;
    }else {
    header('Location: booking-failure.php?error_code=25');
    die;
    }
    //header('Location: booking-confirm.php?success_code=1');
    }
    /* PAYPAL PAYMENT */
    function processPayPal(){
    global $bookprs;
    echo "<script language=\"JavaScript\">";
    echo "document.write('<form action=\"paypal.php\" method=\"post\" name=\"formpaypal\">');";
    echo "document.write('<input type=\"hidden\" name=\"amount\" value=\"".number_format($bookprs->totalPaymentAmount, 2, '.', '')."\">');";
    echo "document.write('<input type=\"hidden\" name=\"invoice\" value=\"".$bookprs->bookingId."\">');";
    echo "document.write('<input type=\"hidden\" name=\"appmtName\" value=\"".$bookprs->appmtName."\">');";
    echo "document.write('</form>');";
    echo "setTimeout(\"document.formpaypal.submit()\",500);";
    echo "</script>";
    }
    /* OTHER PAYMENT */
    function processOther(){
    /* not implemented yet */
    header('Location: booking-failure.php?error_code=22');
    die;
    }
    ?>


    bu booking-process.php dosyamdakı kodların içerisinde kırmızı ile gösterdiğim kod yerine $mail = new PHPMailer; yazınca olacak mı?şimdi direk bir form mail hazırlasam olayı çözeceğimde benim derdsim şimdi bu booking-process ile rezervassyonu yaptıgında müşteri tamama basınca müşteriye bir mail yolluyor.işte sıkıntım burada benım kafam bunda karısıyor.şimdi bu booking-process.php dosyasında bu php maileri nasıl entegre edeceğim?




  • quote:

    Orijinalden alıntı: nco_90000

    özgür beyin kardeşim anladıgım kadarıyla php mailer dediğimiz mail gönderme işine yarayan bir yazılım.şimdi benim booking-process.php isimli bir dosyam var.kodları aşağıda

    bu booking-process.php dosyamdakı kodların içerisinde kırmızı ile gösterdiğim kod yerine $mail = new PHPMailer; yazınca olacak mı?şimdi direk bir form mail hazırlasam olayı çözeceğimde benim derdsim şimdi bu booking-process ile rezervassyonu yaptıgında müşteri tamama basınca müşteriye bir mail yolluyor.işte sıkıntım burada benım kafam bunda karısıyor.şimdi bu booking-process.php dosyasında bu php maileri nasıl entegre edeceğim?

    Hayır hocam sadece orayı değiştirerek bu işi yapamazsınız. Komple kodları PhpMailler kütüphanesine göre tekrar yazmalısınız, ki anladığıma göre kodlar size ait değil, hocam bence kodların mail işlerimleri ilgili kısımları silip tekrar en baştan kendiniz yazın internette phpmailler ile ilgili örnekler var hatta örneklere bile gerek yok attığım github linkindeki dökümantasyon yeter ve artar bile(https://github.com/Synchro/PHPMailer).




  • özgür beyin şimdi senin verdiğin linkte PHPMailerAutoload.php yi çağırmışlar baska sitede ise adam "class.phpmailer.php yi çağırmış.kafam iyice karıştı.hangisini çağırıcam hangisi ne işe yarıyore.ikisinden birini çağırsam oluyor mu?ne berbat bişi bu yaaa.adam akıllı anlatım olan türkçe bir sitesi yok mu bunun?
  • quote:

    Orijinalden alıntı: nco_90000

    özgür beyin şimdi senin verdiğin linkte PHPMailerAutoload.php yi çağırmışlar baska sitede ise adam "class.phpmailer.php yi çağırmış.kafam iyice karıştı.hangisini çağırıcam hangisi ne işe yarıyore.ikisinden birini çağırsam oluyor mu?ne berbat bişi bu yaaa.adam akıllı anlatım olan türkçe bir sitesi yok mu bunun?

    Hocam verdiğim linkdeki 'Installation & loading' bölümünü okusanız kolaylıkla anlarsınız ama yinede ben anlatıyı. Verdiğim linkdeki dosyaları zip olarak indirdiniz, dosyaları çıkarttınız. Dosyalar içerisinde class.phpmailer.php , class.pop3.php , class.smtp.php ve PHPMailerAutoload.php adlı dosyaları alıp kendi projenize kopyaladınız. Burda ister sadece PHPMailerAutoload.php include edin, ister diğer üç dosyayı da ayrı ayrı include edin, fark etmez. PHPMailerAutoload.php dosyası tek include ile diğer üç dosyayı da include edebilmenize yarıyor daha sonra github dökümantasyondaki gibi kullanabilirsiniz. Ayrıca kişisel tavsiye olarak object oriented programlama konularına bakmanızı tavsiye ediyorum çünkü çok eksiğiniz var.




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.