Aunque parezca increible Magento no tiene por defecto la opcion de usar otro servidor smtp que no sea localhost.

Para poder usar otros servidor hay dos opciones:

  1. Usar esta extensión de aschrode
  2. modificar el core del propio magento o usar esta extension.

Para modificar el core, aunque no es muy complicado si que puede producir dolores de cabeza si se actualiza, ya que eliminará nuestros cambios. Para esto recomendamos hacer una copia de los fichero que modificamos a la carpeta app/local

La información la he sacado de este hilo y funciona

http://www.magentocommerce.com/boards/viewthread/1073/P30/#t57392

Dejo aqui lo que hay que hacer.

1) Modify FILE: app/code/core/Zend/Mime.php

Change line 42:
const LINEEND = “”;
with
const LINEEND = “\n”;

IMPORTANT: leave double quotes FOR “\n”

2) ModifyFILE: app/code/core/Mage/Core/Model/Email/Template.php

2a) New getMail() function (added a block of code to specify smtp config):

public function getMail()
{
if (is_null($this->_mail)) {

/*Start of added code to specify config*/
$my_smtp_host = Mage::getStoreConfig(‘system/smtp/host’); // Take it from Magento backoffice or you can specify it here
$my_smtp_port = Mage::getStoreConfig(‘system/smtp/port’); // Take it from Magento backoffice or you can specify it here

$config = array(
‘ssl’ => ‘tls’, //optional
‘port’ => $my_smtp_port, //optional – default 25
‘auth’ => ‘login’,
‘username’ => ‘mailaccount@domain.com’,
‘password’ => ‘password’
);

$transport = new Zend_Mail_Transport_Smtp($my_smtp_host, $config);

Zend_Mail::setDefaultTransport($transport);
/*End of added code to specify config*/

$this->_mail = new Zend_Mail(‘utf-8′);
}
return $this->_mail;
}

2b) Comment those lines into send() function:

//ini_set(‘SMTP’, Mage::getStoreConfig(‘system/smtp/host’));
//ini_set(‘smtp_port’, Mage::getStoreConfig(‘system/smtp/port’));

El paso 2b no lo he hecho y funciona perfectamente.