12
votes

Connexion SMTP persistante dans PHPMailer

Comment activer les connexions SMTP persistantes dans PHPMailer?

Je vais envoyer de nombreux courriels, donc avec des connexions persistantes, je vais probablement obtenir un gain de performance.


0 commentaires

4 Réponses :


1
votes

Qu'entendez-vous par connexion SMTP persistante?

premier Si vous envoyez un e-mail , vous êtes connecté au serveur jusqu'à ce qu'il termine le travail. secondaire si vous voulez envoyer de nombreux courriels (votre serveur sera probablement dans la liste noire), Vous écrivez une boucle dans votre code PHP , WISCH FETCHES Tous les adresses de courrier électronique et les transmet au phpmailer et au final les envoie. Thats comment j'enverrais des mails de masse.


3 commentaires

Mais je dois activer cela dans un endroit dans PHPMailer, car il peut se connecter et se déconnecter sur chaque email envoyé.


Mon serveur est reconnu et a (presque) les choses nécessaires pour ne pas être noires. Nous envoyons des courriels régulièrement et avons une grande clientèle, et cette régularité nous permet également d'être bien classée dans les serveurs de réception.


Vous devez probablement configurer une file d'attente et utiliser la boucle pour traiter un lot à la fois afin de pouvoir étrangler la quantité de courriels.



2
votes

En optimisant l'envoi d'emails, vous pouvez vous ouvrir comme étant identifié comme spamming et provoquer des serveurs Web pour bloquer votre adresse IP.

Combien d'emails envoyez-vous? Il est peut-être préférable d'envoyer des courriers électroniques d'étranglement plutôt que d'accélérer.


2 commentaires

Actuellement, j'envoie 2500 emails.


Oui, je suis d'accord sur l'étranglement. La limitation à 500-1000 par heure devrait éviter toute possibilité d'être perçue comme spamming



19
votes

Nous ne nous soucions vraiment pas ici si votre serveur devient noué, non? C'est comment réaliser ce que vous voulez. Il suffit de définir true code> la propriété smtpkeeserval code> et après l'envoi de la masse, appelez implicitement la méthode smtpclose () code>.

$phpMailer = New PHPMailer();
$phpMailer->isSMTP();
$phpMailer->SMTPKeepAlive = true;

for ( ... ) {
    // Send your emails right away
    [ ... ]
}

$phpMailer->SmtpClose();


6 commentaires

Merci beaucoup, Mauro! C'est la réponse que je cherchais.


Bonjour Mauro j'ai utilisé le même code $ PHPMailer-> Smtpkeekalive = true. Mais n'a pas augmenté la vitesse d'envoi de courrier électronique. Cette ligne de code ne change pas de performance dans mon cas. S'il vous plaît donnez-moi des suggestions si vous en avez d'autres.


@MAHESHKAJAJALE, $ PHPMailer-> SMTPKEKAlive = true évitera uniquement la fermeture de la connexion sur le premier courrier électronique afin qu'il ne soit pas à s'ouvrir sur le suivant. Cependant, le serveur peut être de la fermeture de la connexion et vous ne pouvez pas modifier cela. Si vous devez envoyer un courrier électronique plus rapide, je vous recommande d'utiliser une plate-forme de messagerie basée sur l'API comme Mandrill ou Mailgun, où vous pouvez tirer des centaines de courriels sur une seule demande. Cependant, si vous essayez de faire du spam, oubliez-vous que je vous ai aidé, aller dans votre chambre et votre chose à propos de ce que vous avez fait.


Cela peut être utile lorsque vous utilisez des serveurs de relais SMTP de Gmail (pour les comptes d'entreprise / éducatifs) lors de l'envoi de plusieurs courriels via un script. - de Google Docs: "Les serveurs de relais SMTP de Google apps ont des protections en place pour se protéger contre les attaques de déni de service (DOS). Pour éviter les conflits avec ces protections, des agents SMTP qui envoient de grandes quantités de courrier via SMTP-Relay.google.com Réutilisez les connexions, envoyant plusieurs messages par connexion. Ceci est également appelé mise en cache de connexion. "


Assurez-vous d'appeler ClearAddresses () dans la boucle avant d'appeler AddAddress () . Voir: Stackoverflow.com/a/18285896/482115


Beaucoup d'entre nous utilisent PHPMailer pour envoyer des courriers électroniques via des services transactionnels tels que le cachet de la poste, Mailgun, SendGrid, SES, etc. SO SPAM n'est donc pas un problème du tout. Ces services vous permettent d'envoyer un courrier aussi rapide que vous le souhaitez, de manière à minimiser le temps de connexion SMTP est idéal.



0
votes

La connexion SMTP persistante convient lorsque vous envoyez de la masse et que vous souhaitez envoyer plus rapidement, en conservant la connexion SMTP en vie pour un nombre spécifique de envois de messagerie est la bonne idée, pour une envoi plus rapide. Une connexion SMTP alternée fréquente dans la boucle peut être la voie à l'envoi plus contrôlé lors de sessions de réchauffement IP. https://www.mumara.com/persistent-smtp- Connexion et-non-persistante-boucle /


0 commentaires