Blog Single

Merhabalar, bu yazımda Google'ın PhpMailer sınıfını kullanarak PHP ile Mail Gönderme örneklerine değineceğim. Örneklerimiz arasında normal mail gönderme işleminin yanı sıra, HTML mail gönderme örneğini de, adım adım görmüş olacaksınız. Yararlı olması dileğiyle.

  • Öncelikle, PHPMailer'i indiriniz;
  • GitHub üzerinden indirebilirsiniz.
  • İndirdiğiniz .rar dosyasını açın, ardından class.smtp.php, class.pop3.php, class.phpmailer.php dosyalarını kullanmak istediğiniz yordama uygun olarak phpMailer adlı bir dosya oluşturarak, içine taşıyınız.
  • Ardından, phpMailer dosyasından bir alt konuma tekrar inerek mail.php adlı bir dosya oluşturunuz.

mail.php dosyası için bir html form ve post işlemi için birtakım kodlar yazmamız gerekiyor.

mail.php dosyası için yazmanız gereken kodlar aşağıdaki gibidir;

  • HTML Form için;
    • <form id="form1" name="form1" method="post" action="mail.php">
        <p>Gönderen Ad-Soyad (Zorunlu)</p>
        <p>
          <input type="text" name="myNameSurname" id="myNameSurname"/>
        </p>
        <p>Gönderen E-mail (Zorunlu)</p>
        <p>
          <input type="text" name="myEmail"/>
        </p>
        <p>Mesajın konusu</p>
        <p>
          <select name="myTopic">
            <option value="Eğitimler">Eğitimler</option>
            <option value="Kurslar">Kurslar</option>
            <option value="Eğitim Videoları">Eğitim Videoları</option>
            <option value="İstek/Öneri">İstek/Öneri</option>
            <option value="Şikayet/Bildiri">Şikayet/Bildiri</option>
            <option value="İletişim">İletişim</option>
            <option value="İş Ortaklığı">İş Ortaklığı</option>
            <option value="Ödeme Bildirimleri">Ödeme Bildirimleri</option>
          </select>
        </p>
        <p>Mesajın aciliyet derecesi</p>
        <p>
          <select name="myMessageCriticals" id="myMessageCriticals">
            <option value="Acil değil">Acil değil</option>
            <option value="Normal">Normal</option>
            <option value="Çok acil">Çok acil</option>
            <option value="Kritik derecede acil">Kritik</option>
          </select>
        </p>
        <p>Mesajın içeriği </p>
        <p>
          <textarea name="myMessage" cols="45" rows="5"></textarea>
        </p>
        <p>
          <input type="submit" name="button" id="button" value="Submit" />
        </p>
        <p>&nbsp;</p>
      </form>
  • HTML içine yazmanız gereken PHP kodları için;
    • include_once('phpMailSent.php');

      if($_POST){
          $senderMail = $_POST['myEmail'];
          $senderTopic = $_POST['myTopic'];
          $senderNameSurname = $_POST['myNameSurname'];
          $senderMessage = $_POST['myMessage'];
          $senderMessageCriticals = $_POST['myMessageCriticals'];
          $dateTime = date("d-m-Y H:i:s");
          
          $mySmtpAdress = "smtp.examplesite.com";
          $mySmtpPort = "25";
          $myMailAdress = "info@examplesite.com";
          $myPassword = "MyPassWord123";
          $myDisplayMailName = "examplesite.com";
          $mySite = "examplesite.com";

          if(isset($senderMail) && isset($senderTopic) && isset($senderNameSurname) && isset($senderMessage) && isset($senderMessageCriticals)){
              if(trim($senderMail) != "" && trim($senderTopic) != "" && trim($senderNameSurname) != "" && trim($senderMessage) != "" && trim($senderMessageCriticals) != ""){
                  
                  if(messageSent($mySmtpAdress,$mySmtpPort,$myMailAdress,$myPassword,$myMailAdress,'$mySite İletişim','$mySite adresinden mail geldi - ['.$dateTime.']','Tarih; '.$dateTime.'<br/>'.'İletişime geçen; '.$senderNameSurname.'<br/>'.'İletişim adresi; '.$senderMail.'<br/>'.'Konu; '.$senderTopic.'<br/>'.'Aciliyet; '.$senderMessageCriticals.'<hr/><br/>'.'Mesajın içeriği; <br/><br/>'.$senderMessage.'<br/>') == 1){
                     //its okay !
                  }
                  
              }
          }    
      }

       

  • Yazdığım PhpMailSent.php mail gönderme class'ı için gerekli kodlar;

    • ob_start();

      function messageSent($mailSenderHost,$mailSenderPort,$mailSenderUsername,$mailSenderPass,$aliciEmail,$mailSenderTitle,$mailTitle,$mailContent){
      include_once("phpMailer/class.mail.phpmailer.php");
      $mail = new PHPMailer();
      $mail->IsSMTP();
      $mail->SMTPAuth = true;
      $mail->Host = $mailSenderHost;
      $mail->Port =  $mailSenderPort;
      $mail->Username = $mailSenderUsername;
      $mail->Password = $mailSenderPass;
      $mail->SetFrom($mail->Username, $mailSenderTitle);
      $mail->AddAddress($aliciEmail, '');
      $mail->CharSet = 'UTF-8';
      $mail->Subject = $mailTitle;
      $message_date = date("d-m-Y H:i:s");

      $message = $message_date.' tarihinde sitenizin iletişim bölümünden size gönderilmiş mesajınız var. <hr /><br />';
      $mailContent = $message.$mailContent;
      $mail->MsgHTML(''.$mailContent.'');

      $value = 0;

          if($mail->Send()) { 
              $value = 1;
          }else{
              $value = 0;
          }
                  
      }


      ob_end_flush();

Not: Örneğimde maili kendi mail adresimden, tekrar kenndi mail adresime gönderdim. Bunun nedeni ise Php eskiden fake mail gönderimlerine izin veriyordu, varsayılan olarak bu özelliği devredışı bıraktığı için bu şekilde kullanıyoruz. Aksi taktirde mail gönderimlerinde bize ulaşacak kişiden eposta sunucu bilgilerini istemeyeceğimizden dolayı içerikte belirttik sadece.

Bu makaleyi paylaşın:
İstanbul'da yaşıyorum.Web üzerinde Frontend/Backend Geliştirmenin yanı sıra, Android Geliştirme, PHP/ASP.NET, C# Yazılım Uzmanlığı ve Java konuları işliyorum. Kod Şiirdir, onları seviyorum.

Bir yorum bırakın