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)