Issue #11

0 up
0 down
Closed
e-sic-livre/e-sic-livre#11
Created by Leandro Arndt (Edited )

E-mail no linux

Baseado na solução do Luis Paulo, sugiro alterarmos os arquivos inc/security.php e restrito/inc/security.php conforme segue:

Linhas 35-40:

        $retorno = (strpos($user_agent, "win") ? "\r\n" : "\n");
        $headers = "Content-type: text/html; charset=ISO-8859-1$retorno";
        $headers .= "Reply-To: $fromname <$from>$retorno";
        $headers .= "Return-Path: $fromname <$from>$retorno";
        $headers .= "From: $fromname <$from>$retorno";
        //$headers .= "Organization: Prefeitura do Natal$retorno";

Sugiro também excluir o cabeçalho Organization, que hoje inclui o nome da Prefeitura do Natal nos e-mails enviados, mesmo que esse campo não seja habitualmente visível ao usuário.

Essa alteração deve permitir o uso do sistema em diferentes ambientes, sem necessidade de modificar o código ad hoc.

Assignee: None
Milestone: None
3 participants
  • 6c659afe38c04d119191507b1dcf82b0?s=40&d=identicon
    Leandro Arndt @leandroarndt (Edited )

    Outra possibilidade é utilizar o PHPMailer, conforme a contribuição do Reinaldo:

    function sendMail($to, $subject, $body, $from="", $fromname=""){
        require_once("../class/PHPMailerAutoload.php");
        $mail = new PHPMailer();
         $mail->isSMTP();                    // Define que a mensagem será SMTP
        $mail->Host = "0.0.0.0";          //hostname ou IP do Servidor
        //$mail->SMTPAuth = true;      //Caso seu email precise de autenticação, no nosso caso não.
        //$mail->Username = "seuemail@dominio.com";
        //$mail->Passowrd = "sua senha";
        if(empty($from)){
            $sql = "SELECT nomeremetenteemail, emailremetente FROM lda_configuracao"; 
            $rs = execQuery($sql);
            $row = mysql_fetch_array($rs);
             $mail->From = $row['emailremetente'];
             $mail->FromName = $row['nomeremetenteemail'];
        }else{
            $mail->From = $from;
             $mail->FromName = $fromname;
        }
         $mail->addAddress($to);
        $mail->isHTML(true);                      //Define que o email será HTML
        $mail->CharSet = "iso-8859-1";       //Charset da mensagem (opcional)
        $mail->Subject = $subject;
        $html = "<html>
                        <body>
                            $body
                        </body>
                    </html>";
         $mail->Body = $html;
        $mail->AltBody = $body;               //Texto Plano (opcional)
        $envia = $mail->send();                //Envia o email
        $mail->clearAllRecipients();          //Limpa os destinatarios
         if($envia){                                    //Retorno do email
            return TRUE;
        }else{
            return FALSE;
        }
    }
    

    Isso resolveria o problema em questão, e também facilitaria, ao que parece, a configuração do servidor de e-mail.

    Choose File ...   File name...
    Cancel
  • 9f6b18edb021bbbe7ebcab9dfee20396?s=40&d=identicon
    Greyce @greycemedeiros

    Certo Leandro , vou analisar isto com Carol , para podermos inserir no projeto.

    Choose File ...   File name...
    Cancel
  • 6c659afe38c04d119191507b1dcf82b0?s=40&d=identicon
    Leandro Arndt @leandroarndt

    Quanto à primeira opção, na verdade o teste deveria ser contra substr_count(strtolower(getenv("OS")), "windows"):

            $linha = ( substr_count(strtolower(getenv("OS")), "windows") ? "\r\n" : "\n");
            $headers = "Content-type: text/html; charset=ISO-8859-1$linha";
            $headers .= "Reply-To: $fromname <$from>$linha";
            $headers .= "Return-Path: $fromname <$from>$linha";
            $headers .= "From: $fromname <$from>$linha";
            //$headers .= "Organization: Prefeitura do Natal$linha";
    

    Acredito que essa versão poderia ser implementada independente de uma futura opção pelo PHPMailer ou outra solução, visto que é de rápida implementação. Posso seguir adiante?

    Choose File ...   File name...
    Cancel
  • 6c659afe38c04d119191507b1dcf82b0?s=40&d=identicon
    Leandro Arndt @leandroarndt

    Instalei o e-SIC Livre em um ambiente Linux com Apache2 e Sendmail, e não tive problemas para enviar e-mail, mesmo sem a alteração no código. Será necessário alterar a quebra de linha?

    Mesmo assim, segue necessário encontrar uma solução para os casos em que é necessário autenticar no servidor de e-mail, solução que o PHP não fornece por padrão. O PHPMailer parece uma solução simples.

    Choose File ...   File name...
    Cancel
  • 9f6b18edb021bbbe7ebcab9dfee20396?s=40&d=identicon
    Greyce @greycemedeiros

    Obrigada pela contribuição Leandro , vamos utilizar o PHPMAILER para autenticação no servidor de email. Temos que investir em solução entendíveis ao usuário =)

    Choose File ...   File name...
    Cancel
  • 5e31f38d7b22a25a6457125a31cce514?s=40&d=identicon
    William Santos @williamsantos

    Como configuro o PHPMAILER dentro do e-sic ??

    grato desde ja

    Choose File ...   File name...
    Cancel
  • 6c659afe38c04d119191507b1dcf82b0?s=40&d=identicon
    Leandro Arndt @leandroarndt

    William, lá em cima tem uma contribuição do Reinaldo que resolve essa questão. Tem que alterar os arquivos inc/security.php e restrito/inc/security.php.

    Choose File ...   File name...
    Cancel
  • 5e31f38d7b22a25a6457125a31cce514?s=40&d=identicon
    William Santos @williamsantos

    Fiz as alterações mais não sei porque motivos quando adiciono esse trecho no Security.php o index principal fica em branco, vou verificar onde estou errando.

    Choose File ...   File name...
    Cancel
  • 9f6b18edb021bbbe7ebcab9dfee20396?s=40&d=identicon
    Greyce @greycemedeiros

    William , foi configurado o security.php do restrito tambem ?? Pois o problema de outro usuario foi resolvido apos a o termino de todos os diretorios restrito e principal.

    Choose File ...   File name...
    Cancel
  • 6c659afe38c04d119191507b1dcf82b0?s=40&d=identicon
    Leandro Arndt @leandroarndt

    mentioned in merge request !9

    Choose File ...   File name...
    Cancel
  • 6c659afe38c04d119191507b1dcf82b0?s=40&d=identicon
    Leandro Arndt @leandroarndt
    Choose File ...   File name...
    Cancel
  • 6c659afe38c04d119191507b1dcf82b0?s=40&d=identicon
    Leandro Arndt @leandroarndt

    Status changed to closed

    Choose File ...   File name...
    Cancel