Hola,
Hay scripts hechos que ya hacen todo. Uno de los mas conocidos es phplist pero hay varios mas.
También podés hacerlo vos. En este caso, además de lo que mencionaste hay que tener en cuenta varias cosas. Algunas por ejemplo son:
- Sí, se puede hacer con la función mail, pero es un poco mas complicado para adjuntar las imágenes. Hay una clase php que envía con adjuntos, pero no recuerdo el nombre.
- Es conveniente usar alguna función y/o cron tab para ir enviando los emails de a poco (le llaman throttle) y no poner todo junto dento de un while por ejemplo. Esto es por un lado porque se podría bloquear el servidor. Y por el otro porque si el hosting es compartido limitan el número de emails salientes. En realidad si el hosting es compartido no suelen admitir newsletters, o te piden directamente que los limites a cierto número.
- También deberías poner una especie de link dentro del mail para desuscribirse ya que suele ser obligatorio.
- Con lo del contenido es como vos decís. No es conveniente usar muchos divs ni css externos, etc. Mejor tablas y cosas mas simples.
Muchas de estas cosas los scripts que existen como
phplist ya las hacen automaticamente.
Saludos,
Leo