Category: Networking and Internet

Penedesfera: 1ers jornades

Reading time: 2 – 4 minutes

logo penedesferaDivendres passat i per casualitats de la vida em vaig enterar de que es celebraven a Gelida les primeres jornades de la Penedesfera. Doncs bé, la casualitat va ser gràcies a un twit del marcvidal que vaig començar a estirar del tema fins a descobrir que també hi havia convocada la gent de guifi.net per parlar del seu projecte. Doncs com que fa temps que els tinc molt abandonats a la colla de guifi.net li vaig fer un toc a en Ramon em va dir que si que hi seria i vaig agafar el cotxe i cap a Gelida.

1era jornada de la Penedesfera

Allà vaig retrobar-me amb una bona colla de guiferos i bloguers, a més de poder coneixer en persona al Marc Vidal que és un dels molts contactes que tinc a twitter i que no tenia el plaer de coneixer en persona. Llàstima no poder quedar-me fins al final de la sessió i encara menys no poder assistir a les jornades del dissabte. El que més em va agradar és veure el viva que esta la comunitat. Amb gent que té ganes de fer coses i el millor és veure com cada cop les barreres tecnològiques són un problema menys per sumar esforços.

De fet, jo mai m’he considerat un bon divulgador de tecnologia pel ‘poble’, de fet, tampoc ho he pretès això si he intentat posar el meu granet d’arena en la part més tecnòloga profunda que és on realment crec que aporto algo de valor. Diria que hi ha d’haver gent per tot per fer de ‘professors’, investigadors, desenvolupadors, analísties, etc. tampoc sabria on posar-me jo de totes aquestes etiquetes però de divulgador de temes iniciàtics segur que no.

Bé doncs, a veure si hi ha sort i tot això continua amb tanta o més força. A més ja m’he donat d’alta a la web de penedesfera i m’he posat el logo per donar-hi suport a la part dreta del blog. Com hi va la gent de les meves comarques, eh!?

Actualització: si voleu accedir a material  de les jornades esta disponible a l’arxiu de les jornades de la Penedesfera.

Reddit open source: aplicacions que destaco…

Reading time: 4 – 6 minutes

reddit logoAquest matí l’Alfredo m’ha informat que reddit ha obert el seu codi. Doncs bé després de mirar-me cada un dels components que ha explicat que esta usant m’ha faltat temps per passar-me per cada una de les pàgines web de les aplicacions per mirar-me a veure què tal. A continuació ús faig una llista del que més destaco, obviament són les aplicacions més inusuals i menys conegudes.

  • HAProxy: és un aplicatiu molt semblant al Pound, la seva finalitat es balacejar les peticions HTTP entre diferents servidors. Malgrat són aplicacions similars Pound i HAProxy poden treballar de forma combinada. Diguem que HAProxy esta molt més orientat a grans infraestructures i Pound és per entorns de carrega mitjana. El bo és que podem usar HAProxy i darrera usar Pound per fer redireccions més refinades en funció da la URL o certs paràmetres de les HTTP headers. També és diferencien bàsicament amb el tractament que fan dels paquets HTTPs, la qual també convida a treballar amb les dues eines a la vegada. Ja que podriem montar un sistema per escalar peticions HTTPs de forma segura i simple.
  • Slony-l:és un sistema de replicació master-slave que suporta treballar en cascada i amb failover. A més esta pensat per treballar amb bases de dades grans. Bàsicament usat pel PostgreSQL que usa reddit, això els permet tenir molts servidors de bases de dades de lectura que són les peticions que bàsicament tenen a la base de dades.
  • Pylons: es tracta d’un framework MVC que usa Python, és realment lleuger i combina idees del món Ruby, Python i Perl. Potser una de les coses que més sobte és que els projectes de Pylons no requereixe servidor web sinó es vol, ja que ells mateixos ja n’implementen un amb Python, a més de tenir un instal·lador del projecte que creem només pel sol fet de crear el projecte. Si ja controleu algún tipus d’MVC i esteu una mica familiaritzats amb la sintaxis de Python podeu veure l’screencast: Special Edition Screencast: Pylons with Tesla. Amb aquest screencast ús podreu fer una molt bona idea de com funciona aquest MVC i de la seva potència. S’ha de reconeixer que promet molt no ús perdeu el sistema de debug, realment m’ha agradat moltíssim pensava que el debug de Symfony era bo, però aquest encara el supera.
  • Slor: es tracta d’un servidor d’indexació d’informació web implementat sobre Tomcat i que ofereix serveis de consulta via JSON i d’altres sistemes webservice que simplifiquen moltíssim la seva integració amb d’altres arquitectures. A més disposa d’una llista de funcionalitats molt atractives.
  • Daemontools: una eina realment senzilla i potent, bàsicament només serveix per llençar processos com a dimonis o directament dimonis en si mateixos. El bo és que controla aquests dimonis per si aquests cauen tornar-los a aixecar. La veritat és que malgrat ser una mica més gran diria que és millor monit. Tot i que s’ha de dir que es triga molt mé  montar monit que no pas daemontools i com que la gent de reddit ja usen Ganglia com a sistema de monitorització no s’han complicat amb el monit.

S’ha de reconeixer que han fet molt bones eleccions aquesta colla, a més s’ha demostrat que són realment escalables i que la seva disponibilitat és envejable. Un bon exemple de com fer les coses bé i senzilles des del principi. La gent de twitter en podrien prendre bona nota. Si ús fa il·lusió un dia d’aquests ús explicaré les meves idees de com fer que twitter sigui molt escalable i no s’enfosi amb els 2M d’usuaris que té diariament, la qual cosa no em sembla cap exageració amb un bon disseny darrera segur que en Pau pateix molt més amb els seus milions de megues a indexar diarimant.

gDevilspie: entorn GTK per configurar el devilspie

Reading time: 2 – 2 minutes

Aquest ja és el tercer article que escric parlant de devilspie, així doncs no tornaré a explicar el perquè serveix si ho voleu saber:

Però la veritat és que feia uns mesos que l’havia deixat d’usar però hi he hagut de tornar. Des de fa força temps treballo amb dues pantalles, la del portàtil i una de 22″ tan a l’oficina com a casa. Doncs bé, fins ara ho feia amb Xinerama però degut als problemes que vaig tenir amb la NVidia i el Xinerama m’he passat a TwinView així puc usar el Compiz i uso les X’s al més pur estil Mac. De fet, jo diria al més pur estil Oriol 😉

screenshot of my laptop desktop

Doncs bé, tornant al que volia comentar el gDevilspie és un projecte que afeix una interficie gràfica que malgrat limita les amplies funcions de configuració que té el devilspie serveix per la majoria de configuracions i simplifica infinitament l’obtenció de propietats d’una finestra i a partir d’aquí generar les configuracions amb quatre clicks. Realment fa molt més agradable la tasca de configurar el devilspie que és per on coixeja més sota el meu punt de vista.

tcpflow: mirant streams tcp en un moment

Reading time: 1 – 2 minutes

Fins ara per poder seguir un protocol dins del enllaç TCP, o sigui els missatges de la capa 5, sempre acabava capturant-lo amb el wireshark o en el seu defecte amb el tcpdump generava un fitxer .cap que després obria al wireshark i a través d’una funció tan simple com el Follow TCP stream em montava la sessió de capa d’aplciació que podia seguir de forma ben còmode. El gran descobriment que vaig fer l’altre dia és el tcpflow una eina la mar de simple i lleugera que com no podia ser d’altre forma usa les llibreries libpcap, le mateixes que el tcpdump i el wireshark per mostrar-nos de forma completament visual i simple a través de la consola o contra un fitxer el contingut de la sessió TCP. Espero que li tregueu tan profit com jo a l’eina.

podcast 1×08: CAS, Central Authentication Server

Reading time: 3 – 4 minutes

L’objectiu d’aquest podcast és donar una visió conceptual del funcionament de CAS 2.0, un servidor d’autenticacions SSO (Single Sign On). Bàsicament esta orientat a usuaris d’aplicacions amb interficie Web. A movilpoint l’estem usant tal com vaig comentar al podcast 1×07.

La diferència entre 1.0 i 2.0 és que la versió 1.0 només podia autenticar usuaris contra aplicacions web i aquests serveis no podien autenticar-se a la seva vegada contra altres serveis (serveis backend).

Amb l’esquema que hi ha a continuació i la previa lectura de les entitats d’un sistema CAS podreu seguir el podcast:


CAS - Central Authentication Server (schema)

A continuació descric les entitats que intervenen en un sistema CAS.

  • Service Ticket (ST): és una cadena de text que usa el client com a credencial per obtenir accés a un servei. Aquest tiquet s’obté del servidor CAS. La forma d’obtenir-lo és a través d’una cookie que es guarda al navegador.
  • Ticket Granting Cookie (TGC): cookie que s’envia al CAS quan un browser ja ha estat autenticat previament per aquest CAS, llavors aquest reconeix la cookie i li dona al browser un Service Ticket (ST) sense haver de passar el procés d’autenticació manual. Caduca en unes 8h aproximadament.
  • NetID: identifica a un ususari, el que coneixem habitualment com username.
  • ServiceID: identificador d’un servei, normalment en format URL.
  • Proxy Ticket (PT): és una altre cadena de text que usa un servei com a credencial per obtenir accés a un servei de backend. O sigui, que el primer servei per tal de desenvolupar la seva activitat li fa falta accedir a un altre servei (servei de backend), per tal d’obtenir accés a aquest darrer servei el primer usarà un proxy ticket. Aquest tiquets s’obtenen al CAS quan el servei que vol l’accés presenta un PGT (Proxy-Granting Ticket) i un identificador de servei que es refereix al servei de backend.
  • Proxy-Granting Ticket (PGT o PGTID): es tracta d’una altre cadena de text que com hem vist al punt anterior l’usa el servei per aconseguir un Proxy Ticket (PT) que li doni accés a un backend service l’accés a aquest servei serà amb les mateixes credencials que l’usuari original, o sigui, el que s’ha autenticat al primer servei.
  • Proxy-Granting Ticket IOU (PGTIOU): com no podia ser d’altre manera és una cadena de text que es passa com a resposta del serviceValidate i del proxyValidate usada per correlacionar un Service Ticket o una validació de Proxy Ticket amb un Proxy-Granting Ticket (PGT) particular.

Ara només queda escoltar el podcast:

[display_podcast]

Els enllaços relacionats amb el podcast:

NOTA: donar les gràcies al Marc Torres per la seva feina, gràcies nano.

Postfix tips

Reading time: 19 – 32 minutes

Aquest inici de setmana l’he passat moltes i moltes hores llegint documentació del Postfix per tal de solucionar un problema a un client que tenia una cua de correu inmensa i que no hi havia manera de servir perquè el servidor no donava coll. Doncs bé, degut a això m’he hagut de llegir molts documents i volia referenciar-los per no perdre’ls de vista ja que molts d’ells són interessentíssims. Realment cada dia que passa estic més convensut que Postfix és la millor opció com a MTA, diria que he passat moltes hores i molts anys provant sendmail, exim i qmail. Però l’experiència sempre m’ha dit que Postfix era el que em solucionava les problemàtiques més inversemblants i així ha estat aquest cop també.

  • Postfix Bottleneck Analysis: aquest document és una introducció a l’eina qshape la qual ens permet veure quin és l’estat de les diferents cues que té postfix, no només om a totals sinó també destriat en dominis i amb una distribució temporal del temps que fa que el correu és a la cua. Realment molt i molt útil per saber on tenim realment acumulat el correu i quines mesures hem de prendre.
  • postsuper – Postfix superintendent: aquesta comanda ens permet fer tasques de manteniment a les cues de postfix. Malgrat la comanda postqueue també permet fer tasques d’aquest tipus aquestes tasques són molt més limitades i orientades a usuaris que no pas a administradors del sistema. Perquè entengueu la potència del postsuper algunes de les seves funcions són: borrar missatges d’una cua concreta a través del seu ID, posar missatges en estat hold així aquests missatges no s’intenten enviar i els tenim retinguts fins que ens interessi, es poden re-encuar missatges que ja han estat encuats així podem tornar a aplicar-los filtres que s’havien aplicat malament, etc.
  • Postfix built-in content inspection: bàsicament es tracta d’un conjunt d’ordres del fitxer main.cf que permeten filtrar els correus en funció d’expressions regulars aplicades a la capçalera del correu (header_checks), cos del correu (body_checks), adjunts mime (mime_header_checks) o caçalers dels correus adjunts als correus (nested_header_checks).
  • Postfix After-Queue Content Filter: aquest document explica com filtrar els correus de formés molt més avançades, per exemple, s’explica la base que tenen de funcionar aplicacions com l’amavisd-new quan s’integren amb postfix. Al que refereixo és a tenir un postfix escoltant el port 25, quan entra un correu aquest s’envia a un port de localhost, allà es processa el correu i es generen d’altres correus amb informes d’spam si fa falta i després es re-injecta a un altre port localhost en aquest cas publicat pel postfix i finalment aquest correu es serveix. Doncs això que sembla senzill de montar té les seves pecualiritats que cal tenir en compte i en aquest document s’expliquen molt i molt bé, a més ens referencia a eines que comento a continuació per crear els nostres propis SMTP proxies on podem aplicar els filtres que ens interessin. Un exemple d’aplicació, a part dels típics filtres anti-spam, seria montar serveis de comandes via SMTP o sigui, que enviant un correu amb un format concret aquest fes una serie d’accions i el resultat tornés al seu origen via email. En la meva època del packet radio usabem això per fer smtp2ftp, per exemple.
  • smtpprox – simple efficient SMTP proxy in perl: amb aquesta eina és trivial montar les nostres aplicacions a mida per fer filtres de correu tal com comentava en el punt anterior, a més des de la pròpia pàgina es referència a moltíssims patches per tal de fer funcions espcífiques amb aquesta eina. Alguns exemples: podem fer el mateix que fa amavisd-new però amb un codi molt més simple, podem fer de proxy d’autenticació per un SMTP que no té autenticació montada, tenir una llista de blacklist en MySQL, etc.Bàsicament l’SMTP proxy només fa de servidor SMTP per un costat i client SMTP per l’altre, al mig nosaltres podem processar el correu segons la seva informacó: capaçalera, adjuns, contingut del correu, etc.

Volia comentar de forma explícita una de les solucions ineressants que es presenta al primer document, el que parla sobre qshape. La idea és que a través d’aquesta utilitat podem trobar un domini sobrel el que s’hi encuen molts correus i per tant la cua de sortida de correus es veu perjudicada perquè aquest destí monopolitza gran part de la cua. Doncs bé, es tracta de construir una cua de sortida de correu només per aquest destí i fer que els correus que vagin cap allà es processin a part.

Per montar això cal:

    • Modificar el fitxer master.cf i afegir un “smtp” transport per la destinació en concret. Això es faria així:
/etc/postfix/<a href="http://www.postfix.org/master.5.html">master.cf</a>:
    # service type  private unpriv  chroot  wakeup  maxproc command
    fragile   unix     -       -       n       -      20    smtp
    • Fixeu-vos que fixem el número de processos a un màxim de 20, això vol dir que com a molt hi podran haver 20 instàncies simultanees del procés “smtp” per servir correus d’aquesta cua de sortida.
    • Al main.cf configurem els límits de la cua que s’usarà pel transport “fragile” que hem configurat.
/etc/postfix/<a href="http://www.postfix.org/postconf.5.html">main.cf</a>:
<a href="http://www.postfix.org/postconf.5.html#transport_maps">transport_maps</a> = hash:/etc/postfix/transport
    fragile_destination_concurrency_failed_cohort_limit = 100
    fragile_destination_concurrency_limit = 20
    • Ara toca crear el fitxer de transport on indicarem que els correus per aquest domini es serveixen per una cua particular, al costat del nom de la cua si es vol es pot indicar un host i un port cap a on es farà relay:
/etc/postfix/transport:
    example.com  fragile:
  • Recordeu que després de crear el fixer transport cal fer un postmap transport.
  • Per veure quin és l’estat de la nova cua, només cal fer qshape fragile.

Espero que si no coneixieu postfix aquest petit post hagi servit per veure fins a quin punt és simple i dinàmic de configurar, no pretenia fer cap introducció només una pura referència de documentació que crec que a partir d’ara intentaré tenir aprop.

Pound: reverse proxy i load balancing

Reading time: 3 – 4 minutes

A través d’un howto de howtoforge he descobert aquesta eina anomenada Pound. Realment m’ha deixat impressionat per la seva simplicitat i potència al mateix temps. A més m’ha donat molt confiança saber que hi ha almenys un site processant 30M de peticions al dia, unes 600 per segon amb aquest aplicatiu. Aquest tipus de números sempre ajuden a donar confiança en les eines.

Doncs bé, l’eina bàsicament es dedica a capturar totes les peticions HTTP i HTTPs repartint-les després contra els servidors que té en el backend. En cap moment fa de caché ni res similar. Tot i que cal destacar la capacitat de poder fer de SSL wrapper. Així doncs, no cal que els backend facin de servidors SSL, només de servidor HTTP. Obviament pel client s’establirà una connexió HTTPs completament transparent. Si la validació SSL no és correcte Pound ja no envia peticions als servidors que té darrera.

Les funcions de balancejador de càrrega (load balancer) permeten no perdre les sessions establertes pels navegadors dels clients contra els servidor de backend, de fet, Pound implementa sis formes diferents de capturar una sessió per tal de no enviar peticions a un dels backends que no conegui la sessió del navegador.

Suporta funcions de fail-over, així doncs totes les peticions es direccionen només als servidors de backend que se sap que funcionen, la validació que es fa per saber si un servidor esta actiu o no és força simple i a grans trets es basa en paquets ICMP.

Finalment també cal destacar una funcionalitat que m’ha cridat molt l’atenció, ja que permet fer de wrapper d’URL i enviar les peticions que acompleixin certes expressions regulars cap a un o altre servdidor. Això permet, per exemple, enviar els dominis virtuals cap a un o altre servidor. A més, també podem per exemple, enviar les peticions d’imatges cap certs servidors de backend específics.

Al llegir-me la documentació d’aquesta eina el que més m’ha intrigat és saber com resolien el típic problema que presenten les eines d’aquest tipus, els fitxers de logs. M’explico, una cosa molt important a poder controlar des del punt de vista d’un servidor web és saber d’on arriben les peticions si el servidor web no rep les peticions directes d’internet sinó a través d’un balancejador com Pound la IP origen de la petició es perd i per tant, els fitxers de logs dels servidors web no són reals sinó que tenen com a origen sempre el balencejador. A més de totes els problemes associats a no saber d’on venen les peticions, com el control d’accés i d’altres similars.

Doncs bé, bàsicament això es soluciona a través d’una capçalera HTTP afegida des de Pound a la petició web. Així doncs és en aquesta capçalera que s’han d’anar a buscar les dades necessaries per recomposar el fitxer de logs del servidor web. També hi ha mod’s d’apache que ja solucionen aquest tema directament capturant aquesta nova entrada en la capçalera HTTP, concretametn val la pena que no perdeu de vista mod_extract_forwarded2.

Sota el meu punt de vista un gran descobrint i una eina molt interessant per tal de poder montar servidors web’s amb més cara i ulls. No sé si algú l’haura provat 😉

VMWare trick: usar màquines virtuals creades en versions més noves en motors vells

Reading time: 2 – 2 minutes

Quan creem una màquina virtual d’VMWare amb una versió nova del Workstation, per exemple, si després volem usar aquesta màquina amb VMWare server 1.0.x la definició de la màquina virtual que es troba dins del fitxer .vmx no és compatible amb el motor esmentat. Així doncs, no podem llençar la màquina i el que veurem és un error que diu:

Configuration file was created by a VMware product with more features than this version

Doncs bé, aprofitant que les definicions de les màquines virtuals estan fetes amb fitxers de text podem editar-los i arreglar aquest problema, almenys jo ho he pogut fer gràcies a le notes de l’article: How To Convert VMware Server 2.0 Beta VMs into VMware Server 1.0.4 escrit a Desktop Virtualization.

Els canvis a fer són molt simples, primer cal modificar el fitxer .vmx que defineix la nostre màquina. Dins del fitxerlocalitzem on posa:

virtualHW.version = “6″

canviem la versió per:

virtualHW.version = “4″

Ara cal canviar també el fitxer on es defineix el disc dur virtual que usarà la màquina, això ho trobareu al fitxer .vmdk localitzem la part del codi on posa:

ddb.virtualHWVersion = “6″

i la canviem per:

ddb.virtualHWVersion = “4″

A mi m’ha funcionat, de totes formes el meu escenari era molt concret no sé si funcionarà per qualsevol escenari similar, tot i que jo opino que si.

phpList: newsletters i mailings de correu OpenSource

Reading time: 6 – 9 minutes

phpList logoFa temps l’O.Manyà em va demanar una aplicació per fer just això i no n’hi vaig saber dir cap, el més frustrant és que ja coneixia aquesta eina de fa molt de temps però mai li havia fet massa cas. De fet, la veia com una evolució del mailman. Però ara me’n adono que és algo molt més corporatiu, és a dir, no és pas una eina per gestionar llistes de correu (diria que no és capaç de fer-ho). Sinó que esta molt més orientat al concepte de newsletter o de mailings. O sigui, ideal per emetre comunicats d’empresa als nostres clients o per escriure mailings personalitzats als nostres clients informant del que sigui. Després de fer un repàs per les moltíssimes funcionalitats què té diria que la pinta és excel·lent. A més si ús passeu per la web del phpList veure-ho que té força screenshots i screencasts que poden donar-vos una idea molt aproximada de tota la funcionalitat que té l’eina.
A continuació adjunto el llistat de funcionalitats que té l’eina, com deia val la pena invertir-hi una estona en donar un cop d’ull. M’ha cridat molt l’atenció la possibilitat de poder generar mailings a partir de subscripcions a RSS. Així doncs, si a l’empresa tenim un blog podriem emetre un butlletí de notícies de forma automàtica gràcies a aquesta funcionalitat.

  • The Web Interface lets you write and send messages, and manage phplist over the internet.
  • phplist keeps sending messages from your web server, even after you shut down your computer.
  • 100 000 + subscribers. phplist is designed to manage mailing lists with hundreds of thousands of subscribers. phplist is excellent with smaller lists too!
  • No duplicate messages. No ‘forgotten’ messages. phplist manages message delivery with a message queue, ensuring that every subscriber gets the email message, and that no subscribers receive two copies, even if they’re subscribed to more than one list!
  • Open/View Tracking tells you how many users opened your email message. This provides a minimum statistic, as many email clients with privacy or security policies block images (gmail, thunderbird, and others).
  • Click Tracking tracks links and URLs. Statistics can be viewed by message, URL or subscriber.
  • Multiple Subscribe Pages allow you to choose many different combinations of templates, languages, user attributes and lists.
  • Templates are completely customizable, and make site integration a breeze.
  • Multiple Templates on different subscribe pages can integrate phplist with several different web sites.
  • Subscriber Attributes like ‘name’, ‘country’, and other personal information, are completely customizable. You can specify what information you need to get from users when they subscribe.
  • User Specific Content. You can use Subscriber Attributes in message content to make each and every email message personalized with the subscribers name, country, or any other attribute.
  • HTML email messages. Subscribers can be given the choice between text or html email messages. You decide whether subscribers can choose, what the default choice is, and what format a message is sent in: text only, html only, or both!
  • The HTML Editor allows you to edit html messages from phplist using FCKeditor. TinyMCE is also available.
  • Internationalization. phplist is available in English, French, German, Spanish, Portuguese, Traditional Chinese, Dutch, Vietname and Japanese and translation work is in progress for other languages.
  • Easy Install via Fantastico, FTP upload, or SSH.
  • Multiple List Administrators. The super-admin can assign lists to List Managers, who can manage their users and lists. The super-admin user can ‘prepare’ messages that can be sent by list managers to their lists.
  • Subscriber Preferences. Every email message contains personalized URLs for subscribers to update their preferences or unsubscribe. Subscribers can update their own information and keep your database up to date. Unlike most other mailing list managers, in phplist subscribers can change their email address.
  • The User Management tools are excellent to manage and maintain large databases of subscribers.
  • Bounce Processing keeps your database clean of unused and non-existent email addresses.
  • Advanced Bounce handling let’s you teach phplist to distinguish between permanent and temporary message-delivery errors. You can define automated actions on receipt of bounce messages according to matches with your regular expressions.
  • CSV Import and Export. Use CSV and tab delimited files to import your existing list of users or to export the users on the phplist system for use in your in-house database. phplist’s database has a ‘foreign key’ to help keep multiple copies of databases synchronized without duplicating users.
  • Attachments can be uploaded and included in messages for download.
  • Send a Web page. Tell phplist the URL of a web page you want to send to your users, and phplist will fetch it and send it. You can even put subscriber-specific parameters in the URL.
  • RSS feeds can be automatically sent to a mailing list weekly, daily, or monthly.
  • PDF messages can be automatically created and sent as attachments to ensure that your message is seen the way it was designed by all your subscribers, regardless of their email message reader.
  • Batch Processing is useful in shared hosting environments. Set the maximum number of sent messages in a given time period.
  • Throttling can limit the load on your server so it doesn’t overload.
  • Domain Throttling limits the number of emails to specific domains to keep on the friendly side of their system administrators.
  • Scheduled Sending let’s you tell phplist when the message is to be sent.
  • Repetition. A message can be repeated automatically to send updated dynamic content and attachments.
  • Text from HTML. Text email messages are managed fluently in phplist. phplist will automatically create a text version of an html message. Optionally the message composer can create it manually.
  • PGP signing and encrypting (soon).
    Send your message digitally signed or encrypted, or both.
  • Email to Fax (soon).
    Configure the details of your favourite email 2 fax gateway and phplist will send the HTML version of the message as a PDF attachment to your fax gateway. The fax will include the images in the HTML.
  • Integration with other tools. Several systems exist on the internet that integrate phplist with your favourite CMS or blogging tool. Check out the Documentation for a list.
Scroll to Top