adres_defteri isimli bir tablo olusturdum ve oncelikle buraya verileri
bastim. Sonra users tablosundaki emaillerle eslestirerek contacts
tablosuna eklettim.
*tablo yapisi :*
CREATE TABLE adres_defteri
(
email_from character varying(100) NOT NULL,
email_to character varying(100) NOT NULL,
ad_soyad character varying(100),
CONSTRAINT birincil PRIMARY KEY (email_from, email_to)
)
WITH (
OIDS=FALSE
);
ALTER TABLE adres_defteri OWNER TO roundcube;
*kod:*
<?php
$db = pg_connect("host=localhost port=5432 dbname=roundcube user=hebele
password=hubele");
function mail_ekle($db, $mail_from, $mail_to, $isim)
{
if (strstr($mail_from,'@') && strstr($mail_to,'@'))
{
$sql = "INSERT INTO adres_defteri(email_from, email_to,
ad_soyad) VALUES ('$mail_from', '$mail_to', '$isim')";
pg_query($db, $sql);
}
}
function mail_oku($db,$path)
{
if ( !($handle = fopen($path, 'r') ) ) {
echo "Dosya acilamadi.";
return ;
}
$satir = array();
$i = 0;
while (!feof($handle)) {
$satir[$i] = fgets($handle);
if (strstr($satir[$i], 'From: ')) {
$exp = explode('<', $satir[$i]);
$exp1 = explode('>', $exp[1]);
$fromMail = $exp1[0];
}
if (strstr($satir[$i], 'To: ')) {
$n = $i;
}
if (strstr($satir[$i], 'Subject: ')) {
$j = $i;
break;
}
if ($i > 500)
break;
$i++;
}
$mailTo = array();
for ($k = $n; $k < $j; $k++)
{
if (strstr($satir[$k], 'To:')){
$mailToExp = explode('To: ', $satir[$k]);
$mailToExp1 = explode(',', $mailToExp[1]);
for ($m = 0; $m < count($mailToExp1); $m++)
{
$exp = explode('<', $mailToExp1[$m]);
$isim = $exp[0];
$exp1 = explode('>', $exp[1]);
if (strstr($exp1[0], '@')){
//$mailTo[] = "$isim ".$exp1[0]."\n";
mail_ekle($db, $fromMail, $exp1[0], trim($isim));
}
}
}
if (!strstr($satir[$k], 'To:') && !strstr($satir[$k], 'Cc:' &&
!strstr($satir[$k], 'Bcc:'))){
$exp = explode('<', $satir[$k]);
$isim = $exp[0];
$exp1 = explode('>', $exp[1]);
if (strstr($exp1[0], '@')) {
//$mailTo[] = "$isim ".$exp1[0]."\n";
mail_ekle($db, $fromMail, $exp1[0], trim($isim));
}
}
}
unset($satir);
}
*//burada vdominfo uygulamasinin full pathi de verilebilir*
$fp = popen('vdominfo -d', 'r');
while (!feof($fp)){
$path = str_replace("\n", '', fgets($fp));
if (strlen($path) > 5)
{
echo $path."\n";
if (is_dir($path))
$dir_handle = opendir($path);
if (!$dir_handle)
break;
while($file = readdir($dir_handle))
{
if ($file != "." && $file != ".." && $file !=
'postmaster')
{
if (is_dir($path."/".$file))
{
$sent =
$path.'/'.$file.'/'.'/Maildir/.Sent/cur';
if (is_dir($sent))
$dir_handle2 = opendir($sent);
if (!$dir_handle2)
break;
while($email = readdir($dir_handle2))
{
if ($email != "." && $email != "..")
{
if (is_file($sent.'/'.$email))
{
//echo $sent.'/'.$email."\n" ;
mail_oku($db,$sent.'/'.$email);
}
}
}
closedir($dir_handle2);
}
}
}
closedir($dir_handle);
}
}
On 02/06/2011 08:31 AM, Ahmet Ates wrote:
Hocam valla bisey diyemedim, Once gecmis olsun ama geri donebildigine
sevindim, e haliyle bu degerli scripti gormek isterim tabii :)
2011/2/6 Atif CEYLAN <[email protected]
<mailto:[email protected]>>
Bu gun pgadmin uygulamasinin ve mouse'umun azizligine ugradim. Sag
tiklayip roundcube user sayisini saydirayim derken mouse takildi
ve truncate cascade linkine kaydi. evet mi hayirmi promtu yes
secenegi secili olarak onume geldi. Sonra no basmak yerine carpiya
bastim aklimca ama carpiya basmayi evet saymasinin ardindan tum
user tablosu ve foreign key ile bagli contacts tablosu bosaldi.
Bende oturdum gonderilen emaillerden contact list olusturacak bir
uygulama yazdim. Eger ihtiyac duyarsaniz bunu gonderebilirim. Imap
Sent klasorundeki emaillerin icerisindeki to'lari toplayip
veritabanina yaziyor.
On 02/05/2011 05:14 PM, Ahmet Ates wrote:
Selam arkadaslar,
qmailtoaster la birlikte roundcube kullanacak olursam, her bi
domain icin global adres defterini, o domain nin contack
listinden nasil olusturabilirim, squirrel mail icin bu sekilde
scriptler var ancakroundcube icin bulamadim. bu kounuda
tecrubelerinizipaylasabilirmisiniz.
_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]
Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından
okuyabilirsiniz;
Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
dakika içinde üyeliğinizi sonlandırabilirsiniz.
https://liste.linux.org.tr/mailman/listinfo/linux-sunucu
--
/**
* @author Atıf CEYLAN
* Software Developer& System Admin
* http://www.atifceylan.com
*/
_______________________________________________
Linux-sunucu E-Posta Listesi
[email protected]
Liste kurallarını http://liste.linux.org.tr/kurallar.php bağlantısından
okuyabilirsiniz;
Bu Listede neden bulunduğunuzu bilmiyorsanız veya artık bu listeden gelen
e-postaları almak istemiyorsanız aşağıdaki bağlantı adresini kullanarak 1
dakika içinde üyeliğinizi sonlandırabilirsiniz.
https://liste.linux.org.tr/mailman/listinfo/linux-sunucu