Je suis en train de trier les emails à la recherche d'instances spécifiques de chaînes de caractères et cela prend trop de temps. Je voudrais que le temps passe à une demi-seconde par courriel, et cela prend environ 2 à 2,5 secondes par courriel.Quel est le moyen le plus efficace de trier les emails avec zend_mail?
Je suis inquiet que je fasse quelque chose de vraiment stupide qui ralentit cela - probablement avec mysql ou zend_email. Ce que fait ce code, c'est qu'il vérifie la phrase "chocolat" dans la boîte de réception d'un utilisateur, puis renvoie les valeurs à la fonction jquery ajax. Il boucle dix fois (dans cette version, il vérifie 10 emails). Si vous voyez quelque chose qui va aider à réduire le temps de chargement, ce serait apprécié. Au départ, je pensais que ne pas inclure les bibliothèques serait utile, mais les bibliothèques sans les fonctions d'ouverture de courrier électronique étaient rapides comme l'éclair.
Je suis sûr que je fais quelque chose de stupide et d'amateur (peut-être quelques petites choses). Veuillez les signaler si possible.
est ici le code ...
<?php
$storage = new Zend_Mail_Storage_Imap($imap);
$x=0;
while($x<10)
{
$flags = $storage->getMessage($i)->getFlags();
if(!empty($flags['\Seen']))
{
$read=1;
}
else
{
$read=0;
}
if (strpos($storage->getMessage($i),'chocolate') !== FALSE)
{
$fromaddress = str_replace("'","",$storage->getMessage($i)->from);
$fromaddress = str_replace('"','',$fromaddress);
$sql = "SELECT `senderemail`,`subscribed` FROM email_spam WHERE `useremail` = '$_SESSION[email_address]' AND `senderemail` = '$fromaddress'"; $result = mysql_query($sql) or die (mysql_error());
$num = mysql_num_rows($result);
if($num == 0)
{
$emailmessage = mysql_escape_string($storage->getMessage($i)->getContent());
$sql_insert = "INSERT into `email_spam` (`message`,`useremail`,`senderemail`,`datetime`,`subscribed`) VALUES ('$emailmessage','$_SESSION[email_address]','$fromaddress',now(),1)";// echo $sql_insert;
mysql_query($sql_insert,$link) or die("Insertion Failed:" . mysql_error());
$sql = "SELECT `emailid`,`datetime` FROM email_spam WHERE `useremail` = '$_SESSION[email_address]' ORDER BY `datetime` desc"; $getid = mysql_query($sql) or die (mysql_error());
$num = mysql_num_rows($getid);
echo '<tr><td>'. $fromaddress . '</td>';
echo '<td class="unsubscribe_td" align="center"><input type="submit" value="Unsubscribe Me" class="unsubscribe_button" id="'. mysql_result($getid,0,'emailid') .'"/></td></tr>';
}
}
if ($read==0)
{
$storage->setFlags($i, array(Zend_Mail_Storage::FLAG_RECENT)); //marks as new
}
$i--;
$x++;
}
?>
pouvez-vous redurcir votre code à la partie pertinente s'il vous plaît –
Édité pour afficher uniquement les parties les plus pertinentes du code –
Quelle (s) partie (s) de votre code est lente? Le profil, puis travailler sur l'accélération de ces parties. –