ErsaT adlı üyeden alıntı: mesajı görüntüle
Mail adreslerini tuttuğun alanı unique olarak ayarla. Varolan mail adreslerini tekrar tekrar eklemez.
Bu doğru bir bilgi ama eski maillerde çakışma olacağı için o işlem sürekli hata verecektir. Bu olay daha önce başıma geldi. En güzel çözüm aşağıdaki gibi oldu, bence

Öncelikle gecici bir tablo oluşturuyoruz
 CREATE  TABLE  mail_gecici (  `mail_adresi` varchar( 255  )  NOT  NULL default  ''
  ) ENGINE  =  MyISAM  DEFAULT CHARSET  = latin5;
daha sonra oluşturduğumuz tabloya mevcut "mail" tablomuzdaki verileri DISTINCT olarak yani tek 1 tane olacak şekilde ekliyoruz.
Alıntı
INSERT INTO mail_gecici SELECT DISTINCT(mail_adresi) FROM mail
bu işlemi yaptıktan sonra asıl tablomuzu siliyoruz
DROP TABLE mail;
Sonrasında ise mail_gecici tablosunun ismini mail olarak değiştiriyoruz.

Alıntı
CREATE TABLE mail ( `mail_adresi` varchar( 255 ) NOT NULL default ''
) ENGINE = MyISAM DEFAULT CHARSET = latin5;

INSERT INTO mail SELECT DISTINCT(mail_adresi) FROM mail_gecici;

DROP TABLE mail_gecici;