Tutorial: Como usar o PHPList e enviar através do SMTP do Gmail ou Google Apps
Série: Instalar e configurar o PHPlist
O PHPList vem configurado para usar o PHPMailer em um padrão próprio, mas eu precisava usar junto com o SMTP do Gmail para enviar, então tive que fazer algumas alterações:
-Primeiramente baixei a ultima versão do PHPMailer no endereço:
http://sourceforge.net/projects/phpmailer/files/
-Extrai o conteúdo e copie para o diretório do seu servidor a pasta. Lembrando que já existe uma pasta chamada “phpmailer”, então renomeei a pasta para “phpmailergmail”. Essa pasta deve conter dois arquivos importantes: O class.phpmailer.php e class.smtp.php.
-Editei o topo do arquivo “lists/admin/class.phplistmailer.php” para apontar para a local do novo “class.phpmailer.php”, e adicionei uma nova entrada para o “class.smtp.php”.
require( dirname(__FILE__) . '/phpmailergmail/class.phpmailer.php'); require( dirname(__FILE__) . '/phpmailergmail/class.smtp.php');
4) Ainda no arquivo “class.phplistmailer.php”, editei a função PHPlistMailer abaixo da chamada “if (defined(‘PHPMAILERHOST’) && PHPMAILERHOST != ” && isset($GLOBALS['phpmailer_smtpuser']) && $GLOBALS” adicionando as seguintes linhas:
$this->SMTPSecure="ssl"; $this->Port=$GLOBALS['phpmailer_smtpport'];
E ficou assim:
if (defined('PHPMAILERHOST') && PHPMAILERHOST != '' && isset($GLOBALS['phpmailer_smtpuser']) && $GLOBALS['phpmailer_smtpuser'] != '') {
$this->SMTPAuth = true;
$this->SMTPSecure="ssl";
$this->Port=$GLOBALS['phpmailer_smtpport'];
$this->Helo = getConfig("website");
$this->Host = PHPMAILERHOST;
$this->Username = $GLOBALS['phpmailer_smtpuser'];
$this->Password = $GLOBALS['phpmailer_smtppassword'];
# logEvent('Sending authenticated email via '.PHPMAILERHOST);
# logEvent('Sending via smtp');
$this->Mailer = "smtp";
}
5) Deposi disso pude finalmente editar o arquivo “lists/config/config.php” com os seguintes itens:
define("PHPMAILERHOST",'smtp.gmail.com');
$phpmailer_smtpuser = 'email@seusite.comr';
$phpmailer_smtppassword = '********';
$phpmailer_smtpport = '465';
Fiz o teste e passou a funcionar perfeitamente. Espero que passe a funcionar para você também.

Muito bons os comentários e tutoriais sobre o PHPlist! Parabéns.
Obrigado Sandro.
Vem mais uns posts por ai.
Abraços
Osni,
fiz todas as configurações conforme indicado, inclusive adicionar
$phpmailer_smtpport = ‘465′;
porém não esta enviando as mensagens ( O email indicado para enviar a mensagem de teste não foi encontrado.: sandro@[DOMAIN] ), teria alguma sugestão ?
Abraço
Olá Sandro,
Passa nos comentários os trechos do teu código para vermos.
Qual é a hospedagem?
Detonei a pasta phpmailer e colei a phpmailergmail
*** Topo do arquivo “lists/admin/class.phplistmailer.php” ***
require( dirname(__FILE__) . ‘/phpmailergmail/class.phpmailer.php’);
require( dirname(__FILE__) . ‘/phpmailergmail/class.smtp.php’);
****** Meio *******
if (defined(‘PHPMAILERHOST’) && PHPMAILERHOST != ” && isset($GLOBALS['phpmailer_smtpuser']) && $GLOBALS['phpmailer_smtpuser'] != ”) {
$this->SMTPAuth = true;
$this->Helo = getConfig(“website”);
$this->Host = PHPMAILERHOST;
$this->SMTPSecure=”ssl”;
$this->Port=$GLOBALS['phpmailer_smtpport'];
$this->Username = $GLOBALS['phpmailer_smtpuser'];
$this->Password = $GLOBALS['phpmailer_smtppassword'];
# logEvent(‘Sending authenticated email via ‘.PHPMAILERHOST);
# logEvent(‘Sending via smtp’);
$this->Mailer = “smtp”;
}
***** Arquivo lists/config/config.php ********
# If you want to use the PHPMailer class from phpmailer.sourceforge.net, set the following
# to 1. If you tend to send out html emails, it is recommended to do so.
define(“PHPMAILER”,1);
# To use a SMTP please give your server hostname here, leave it blank to use the standard
# PHP mail() command.
define(“PHPMAILERHOST”,’smtp.gmail.com’);
# if you want to use smtp authentication when sending the email uncomment the following
# two lines and set the username and password to be the correct ones
$phpmailer_smtpuser = ‘newsletter@[DOMAIN]‘;
$phpmailer_smtppassword = ‘*******’;
$phpmailer_smtpport = ‘465′;
Osni,
a hospedagem é Dreamhost.com
já enfrentou esse erro?
Obrigado pela atenção
Sandro
Se é da DreamHost não deveria ter o smtp da dreamhost?
Ou você está usando o Google apps?
Com o Gmail tem limitação de quantidade de emails por dia? Já cheguei a estourar a cota do meu gmail pessoal de envio de emails diários…
Usando o smtp do gmail tem esta limitação também ou não?
O Gmail tem limitações sim. Inclusive no SMTP.
Só não lembro quanto é
Erro o qual perguntei anteriormente ocorre quando tentamos enviar mensagem para um usuário não cadastrado no phplist, logo antes de enviar uma mensagem teste, deve cadastrar o destinatário.
Sobre a configuração do PHPlist para usar sua conta do Gmail ou o e-mail da sua empresa que esta no Gmail, usei a versão que veio com o próprio phplist do phpmailer.
1) faça o passo 4 (acima) é na linha + ou – 35.
2) dentro da pasta lists/admin/phpmailer edite o arquivo class.phplistmailer.php entorno da linha 537 conforme http://forum.imasters.uol.com.br/index.php?/topic/265222-usando-o-smtp-do-google-com-o-phpmailer/ ( a pagina de teste NÃO é necessária)
3) no passo 5 acima no arquivo lists/config/config.php o define deve ficar assim
define(“PHPMAILERHOST”,’ssl://smtp.gmail.com’);
deve funcionar em qq computador com internet e servidor apache (verificar firewall 465).
Abraço
Ei Sandro, funcionou perfeito dessa forma?
Ao menos para min sim !
oi galera,
estou precisando de código para aparecer o nome e uma saudação para o usuário que receber a newsletter, estou usando o phplist. vcs podem me ajudar.
Obrigado.
Alexandre Lizardo