• 14-01-2023, 20:21:03
    #1
    Özetle aylık özeti üye firmalarına mail atıyorum.
    Bunu Excel oluşturarak yapıyorum.
    Her döngü de firmanın excel dosyasını oluşturuyor ve mail atıyor.
    Fakat her döngü de bir önceki dosyaları da mail atıyor.
    Yani 10 adet firmaya mail atacaksam
    1. firmaya kendisinin kini atıyor
    2. firmaya 1. firma ve kendisininkini
    3. firmaya 1. 2. firmaya ve kendisinin gibi devam ediyor.

    Mail fonksiyonu
    function mailGonderPdf($email, $baslik, $metin, $dosya=false, $gonderici, $gondericiMail)
    {
        global $mailPHP;
        $mailPHP->IsSMTP();
        $mailPHP->SMTPAuth = true;
        $mailPHP->SMTPSecure = 'tls';
        $mailPHP->Host = 'mail.site.com';
        $mailPHP->Port = 587;
        $mailPHP->IsHTML(true);
        $mailPHP->SetLanguage("tr", "phpmailer/language");
        $mailPHP->CharSet  ="utf-8";
        $mailPHP->Username = 'mail';
        $mailPHP->Password = 'sifre';
        $mailPHP->SetFrom($mailPHP->Username, $gonderici);
        $mailPHP->AddReplyTo($gondericiMail, $gonderici);
        $mailPHP->addAttachment($dosya);
        $mailPHP->AddAddress($email);
        $mailPHP->Subject = $baslik;
        $mailPHP->MsgHTML($metin);
        $mailPHP->send();
    }
    Excel oluşturucu ve kaydecici

    function exportExcelServer($filename='ExportExcel',$columns=array(),$data=array(),$replaceDotCol=array(),$paraFormat=array()){
    $return="\xEF\xBB\xBF"; // UTF-8 BOM
    
    $say=count($columns);
    
    $return.='<table border="1"><tr>';
    foreach($columns as $v){
    $return.='<th style="background-color:#FFA500">'.trim($v).'</th>';
    }
    $return.='</tr>';
    
    foreach($data as $val){
    $return.='<tr>';
    for($i=0; $i < $say; $i++){
    if(in_array($i,$paraFormat)){
    $moneyFormat = 'style="mso-number-format:\0022\0022\#\,\#\#0\.00"';
    }else{
    $moneyFormat = '';
    }
    if(in_array($i,$replaceDotCol)){
    $return.='<td '.$moneyFormat.' >'.str_replace('.',',',$val[$i]).'</td>';
    }else{
    $return.='<td '.$moneyFormat.'>'.$val[$i].'</td>';
    }
    }
    $return.='</tr>';
    }
    if($_SERVER['DOCUMENT_ROOT']!="C:/xampp8/htdocs"){
    $path = $_SERVER['DOCUMENT_ROOT'].'exceller/'.$filename.'.xls';
    }else{
    $path ='C:/xampp8/htdocs/tamirbank-v5/exceller/'.$filename.'.xls';
    }
    file_put_contents($path, $return);
    return $path;
    }
    işlem yaptığım sayfa (sorguyu ve bir çok şeyi sansürledim sql kodlarından kaynaklı.)

    
        $veriler = $db->query("sorgu ")->arr([])->select();
    
        $kolon = ['Deneme'];
        $replaceDotCol=array();
        $excelArray = array();
        if(isset($veriler) AND $veriler==true){
            foreach ($veriler as $key => $veri) {
                $excelArray[] = [
                date('d.m.Y - H:i:s', $veri['tarih'])               //Kalan
            ];
    
        }
    }
    
    $dosya = exportExcelServer($firma['id'].'-KayitListesi-' . date('dmYHis') ,$kolon,$excelArray,$replaceDotCol,$paraFormat);
    echo $dosya . '<br>';
    $mailGonder = mailGonderPdf('mail@gmail.com', 'Test Ay Özeti', 'Test Metin', $dosya, 'Deneme.Com', 'info@mail.com');
    
    
    }
    Umarım durumu anlatabilmişimdir. Bir şey gözümden kaçıyor ama bulamadım.
  • 14-01-2023, 20:27:50
    #2
    Döngüye bunu ekleyin.
    $mailPHP->clearAttachments();
  • 14-01-2023, 20:42:12
    #3
    ErayEfe adlı üyeden alıntı: mesajı görüntüle
    Döngüye bunu ekleyin.
    $mailPHP->clearAttachments();
    Çok teşekkürler hocam yeni bir şey daha öğrendim
  • 14-01-2023, 20:42:50
    #4
    PhYtOnX adlı üyeden alıntı: mesajı görüntüle
    Çok teşekkürler hocam yeni bir şey daha öğrendim
    Ne demek hocam kolay gelsin