El envío de correos electrónicos a través de correo PHP es lento

Tengo un gran tablero con 1 millón+ miembros y estoy experimentando un gran lapso de tiempo entre el envío de correos electrónicos a cada uno de los miembros. A la tasa actual literalmente me tome 3 meses para enviar correos electrónicos a todos los de 1 millón de miembros.

Mi máquina (dedicado):

  • dual quad xeon
  • 32 gigas de ram
  • Centos 5.4
  • vBulletin

He tratado de configurar un número de maneras, y es aún lento.

La resolución se realiza a nivel local, por lo que no creo que ese es el problema. Alguna sugerencia?


vBulletin muestra como se envía el correo electrónico (500 a la vez) así que yo sé que el script no se agote el tiempo de espera o un problema de memoria. Para completar una página de 500, se tarda 10 minutos. Estoy usando PHP mail() función, que es la única opción que tengo otros de SMTP. Con los anteriores servidores no he configurado yo, que siempre había sido rápido. Ahora probando con sendmail (PHP mail function) es tan lento.

Tener correctamente la memoria asignada a este script PHP?
¿de qué estás hablando?
Son usted se conecta a un servidor remoto para enviar el correo? Esto puede no tener nada que ver con su cuadro local, y todo lo relacionado con el extremo remoto.
Has mirado en las marcas de tiempo en el mail de registro para determinar en qué punto del proceso de envío de cada mensaje de que la experiencia de latencia?
Yup. Lo he visto antes. Que fue un pensar antes de publicar momento para mí.

OriginalEl autor John | 2011-06-17

4 respuestas

  1. 4

    Comprobar su /etc/hosts archivo.

    Si usted tiene una entrada para la dirección IP externa que apunta a su nombre de host local por ejemplo:

    75.23.123.21 my-server-hostname

    Cambio de:

    127.0.0.1 my-server-hostname

    A continuación, intente ejecutar el PHP mail() a funcionar de nuevo.

    Encuentra un ejemplo, no realmente hacer una mejora: la Prueba de 500 correos electrónicos Comenzó a: 11:27 Terminado: 11:33
    Usted debe asegurarse de que los no calificados (corto) de nombre de host para su máquina se encuentra en /etc/hosts señalando de bucle invertido, más detalles aquí: alphadevx.com/a/…

    OriginalEl autor Travis

  2. 2

    Te voy a decir, si tiene 1 millón de suscriptores que usted necesita para llegar, tal vez sea mejor que no hacer lo mismo. En su lugar, ¿por qué no utilizar un servicio como Mailchimp que su enfoque principal es en la entrega de correo electrónico.

    Pensar en las ventajas:

    1. Usted no se preocupe de ancho de banda, de infraestructura y de mantenimiento.

    2. Usted obtener completo de análisis sobre cómo sus campañas de correo electrónico está realizando y la salud de su lista – dice usted que tiene un millón de correos electrónicos, pero ¿cuántos de ellos rebote? Cuántos se abren? ¿cuál es la tasa de apertura por país?, cuántos son marcados como spam, etc?

    3. Dependiendo de cuál es su negocio, puede hacer Una prueba a/B de las campañas y optimizar las lecturas y los clics o conversiones.

    Obviamente pagar extra por este servicio, que está separado de su actual costos de hosting, pero con Mailchimp usted paga por lo que usa. También si usted puede llegar a un millón de seres humanos, usted probablemente ha descubierto la manera de monetizar (si no, usted realmente debería). Así que usar un servicio de 3 ª parte podría pagar por sí mismo.

    Mailchimp es uno de los muchos servicios que hay (lo menciono porque yo lo uso y muy contento con ella). Usted puede ser que desee comprobar hacia fuera SendGrid, Campaña De Monitor y Aweber y sopesar sus pros y sus contras.

    Probablemente no es la respuesta que esperabas, pero esta es solo mi $0.02.

    P. S: Mailchimp también le da un API así que usted puede integrar su aplicación con sus servicios.

    La cosa es que yo no estoy tratando de ganar dinero con ella, yo solo estoy tratando de mantenerme en contacto con mis usuarios. Yo ya estoy pagando un poco para este servidor, así se podría utilizar al máximo de su potencial.
    Justo lo suficiente. Sin embargo, si yo fuera usted, con un millón de usuarios registrados en mi sitio, me gustaría pasar algún tiempo encontrar una manera de monetizar (al menos lo suficiente para cubrir servidor/coste de la infraestructura). Just sayin’ 🙂
    Yo normalmente no votar las respuestas que sugieren un enfoque totalmente diferente, pero en este caso, lo que realmente es la manera correcta de ir sobre el envío de correos electrónicos a 1 millón de beneficiarios. Mediante el uso de su propio servidor, va a añadir un montón de trabajo por cuenta propia (incluyendo la gestión de tu correo reputación) y aún así tienen una probabilidad muy alta de que nunca llegue a su correo electrónico entregado. Yo sugeriría que morder la bala y el uso de Mandrill o Sendgrid para sus correos electrónicos, y servicios como Mailchimp, Emma, Sendicate, Bronto, etc., para sus boletines de noticias.
    Deseo que el de abajo votantes molestaría a hablar de por qué están abajo de votar este.

    OriginalEl autor Jay Sidri

  3. 2

    De la El Manual de PHP

    Vale la pena señalar que la función mail() no es apropiado para grandes volúmenes de correo electrónico en un bucle. Esta función se abre y se cierra un socket SMTP para cada mensaje de correo electrónico, que no es muy eficiente.

    Para el envío de grandes cantidades de correo electrónico, consulte el “PEAR::Mail, y “PEAR::Mail_Queue paquetes.

    OriginalEl autor bwest

  4. 1

    Estoy lejos de ser un experto, pero la función mail() utiliza una gran cantidad más de la CPU y la memoria de lo normal en la web funciona, pero a tener 1 millón de usuarios ya pueden tener una carga importante (CPU y de e /s) en el servidor ya. Esto puede afectar la velocidad de envío de mensajes de correo electrónico, especialmente si estás en una edad Xeon.

    De lo que yo sé, dual quad xeon duales son relativamente nuevos y el envío de los correos electrónicos no lleva a ninguna parte cerca tan larga como lo que es.

    Por lo que he leído, un extremo inferior de una sola cpu del servidor dedicado debe ser capaz de enviar alrededor de 500 a 700 correos electrónicos por minuto… pero que es un sistema dedicado solamente el envío de correos electrónicos. En una de gama media server como sospecho que tienes, me gustaría esperar a ser capaz de enviar los mensajes de correo electrónico en horas, no en meses.

    Puede ser una configuración o un problema de carga que puede ser en muchos niveles diferentes.

    OriginalEl autor Mike

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *