Thursday, August 15, 2013

Corrección de doble punto en SwiftMailer (SWIFT)

Bueno, pués simple y rápido.

Tengo un cliente con un sistema que envía correos electrónicos. Dentro del diseño de la plantilla hay varias imágenes vinculadas a URL que por supuesto llevan algún punto. Al romper las líneas para enviar el correo conforme a estándares, SwiftMailer puede hacer que un punto de esa URL se vaya a una nueva línea; por ejemplo, si el mensaje original tiene la url "www.ejemplo.com" y queda para romper línea, podría resultar:

"............www.ejemplo=
.com"

Así debería de ser, pero SwiftMailer le añade otro punto a todas las líneas que comiencen con un punto (ya que los mensajes de correo electrónico deben de terminar con un punto solo) resultando así:

"...........www.ejemplo=
..com"

Efectivamente haciendo la URL inválida.

La corrección se encuentra en el archivo classes/Swift/Transport/MailTransport.php al rededor de le línea 167, y hay que reemplazar esto:

$body = str_replace("\r\n.", "\r\n..", $body);

por esto:

$body = str_replace("\r\n.\r\n", "\r\n..\r\n", $body);

Así nos aseguramos que el punto solo, realmente sea un punto solo.

Salud!

EDIT:


El reemplazo correcto debe ser en classes/Swift/Transport/AbstractSmtpTransport.php cerca de la línea 327 ($this->_buffer->setWriteTranslations)

Monday, May 6, 2013

Solucionar errores de instalación de Internet Explorer 9 en Windows 7

Post sencillito y rápido. Había estado teniendo problemas con Internet Explorer 9, decidí desinstalarlo y reinstalarlo. Al intentar nuevamente tanto por Windows Update como por el instalador offline, me salieron muchos errores (errores de instalación de Internet Explorer 9 en Windows 7).

Errores encontrados al querer instalar/reinstalar Internet Explorer 9 en Windows 7:

  • 0x80070643
  • 0x80070002
  • 0x80092004
  • 0x800F081E (800F081E)
Sigan estos pasos para solucionarlos:

1) Desinstalar por completo Internet Explorer 9 (si sigue instalado)
  • Ir a Panel de Control > Programas > Programas y características
  • De lado izquierdo dar click en "Ver actualizaciones instaladas"
  • Dar click en "Windows Internet Explorer 9" y luego en "Desinstalar"
  • Reiniciar el equipo
2) Resetar Internet Explorer 8 
  • Abrir internet explorer e ir a Herramientas > Opciones de Internet
  • Dar click en la pestaña "Opciones avanzadas"
  • Dar click en "Restablecer"
  • Cerrar Internet Explorer, reiniciar el equipo
3) Re-Registrar Internet Explorer 8
4) Borrar caché de Windows update
  • En el menú inicio, buscar CMD
  • En el resultado "cmd.exe" dar click derecho y "ejecutar como administrador"
  • Escribir "cd %windir%" (sin comillas) y dar enter
  • Escribir "ren SoftwareDistribution SoftDisTemp" (sin comillas) y dar enter
  • No cierres la ventana de CMD
5) Borrar paquetes específicos de internet explorer (de acuerdo a http://support.microsoft.com/kb/2579295/en-us#LetMeFixItMyselfAlways)
  • Copia el siguiente comando (desde FORFILES hasta la ultima comilla): FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-*9.*.mum /c "cmd /c echo Uninstalling package @fname && start /w pkgmgr /up:@fname /norestart" 
  • Da click derecho en la ventana de CMD y después "pegar"
  • Presiona la tecla enter
  • Reiniciar el equipo
6) Descarga Internet Explorer Offline Installer
¡Listo! =)