Recentemente tive que configurar um servidor Moodle para fazer o envio emails com autenticação SSL, para isto necessitei fazer uma alteração nas configurações da classe PHPMailer e na SMTP da biblioteca de emails.
Para que o Moodle suporte o envio de emails SSL, foram feitas as seguintes modificações nas classes de email do mesmo.
Classe STMP
Na variável (atributo) da classe para a porta padrão, foi alterado o seu valor, como no exemplo abaixo:
var $SMTP_PORT = 465; // linha 30
No método 'Connect' na linha 54, foi adicionada uma linha no início do mesmo, no caso:
$host = 'ssl://'.$host;
Ou a versão parcial do método
function Connect($host,$port=0,$tval=30) {
// TODO concat SSL protocol.
$host = 'ssl://'.$host;
# set the error val to null so there is no confusion
$this->error = null;
# make sure we are __not__ connected
if($this->connected()) {
# ok we are connected! what should we do?
# for now we will just give an error saying we
# are already connected
$this->error = array("error" => "Already connected to a server");
return false;
}
Classe PHPMailer
Na classe PHPMailer, foi alterado o valor para porta padrão do SMTP na linha 162, que no caso foi para:
var $Port = 465;
Considerações
Com base nestas configurações, é possível fazer com que o Moodle possa estar enviando emails com SSL. Para que seja uma solução mais correta, é necessário também fazer uma modificação na tela de configuração do serviço de email no Moodle, no caso adicionando a porta padrão para o envio e o tipo de protocolo (ou se usa SSL) para envio.




