Error en directorio temporal Swift Mailer

Si utilizáis Swift Mailer para realizar los envío de newsletter puede que al montarlo en algunos servidores compartido os de un error 'open_basedir restriction in effect'

Newsletter, swiftmailer

Hola a todos, si utilizáis Swift Mailer para realizar los envío de newsletter puede que al montarlo en algunos servidores compartido os de un error ‘open_basedir restriction in effect’, como este:

[html]
Warning: is_writable() [function.is-writable]: open_basedir restriction in effect. File(/var/tmp) is not within the allowed path(s): (/usr/home/prueba.com/:/home/prueba.com/:/usr/home/phpMyAdmin-plan6/:/usr/home/webstats/) in /usr/home/prueba.com/web/com/Swift-4.0.6/preferences.php on line 15

Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /usr/home/prueba.com/web/com/Swift-4.0.6/preferences.php:15) in /usr/home/prueba.com/web/com/session.class.php on line 7
[/html]

La solución es la siguiente, os vais al fichero llamado ‘preferences.php’ y sustituís estas líneas:

[php] if (function_exists(‘sys_get_temp_dir’) && is_writable(sys_get_temp_dir())){
Swift_Preferences::getInstance()
-> setTempDir(sys_get_temp_dir())
-> setCacheType(‘disk’);
}
[/php]

por

[php] if (function_exists(‘ini_get’) && is_writable(ini_get(‘upload_tmp_dir’))){
Swift_Preferences::getInstance()
-> setTempDir(ini_get(‘upload_tmp_dir’))
-> setCacheType(‘disk’);
}
[/php]

Con este simple cambio se soluciona el problema.