Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal...
Bom... recebi, onde trabalho, um novo computador e, em troca de instalar o Ubuntu numa VBox dentro do XP, resolvi detonar o Windows7 original da máquina e instalar o Ubuntu (10.04) e um XP numa VBox...
Até aí, tudo bem... configurei a máquina toda com o gerenciador de instalações e foi tudo bem (exceto alguns caracteres trocadas nos bancos importados no MySQL) mas, principalmente, a função mail do PHP não funciona de jeito nenhum no Ubuntu/Apache2/PHP5...
Verificando o comando SendMail, descobri que é ele que não está funcionando, não sendo possível enviar uma mensagem pelo próprio Prompt.
O código PHP original enquanto hospedado no XP+IIS+PHP5 é simples... um exemplo:
ini_set('SMTP', 'smtp.marte.mg.gov.br');
$to = 'joao@ig.com.br';
$subject = 'Atribuição de Tarefa em Projeto';
$msg = 'Olá. Queremos informá-lo(a) sobre a designação de tarefa.';
$from = "From: <bergo@marte.mg.gov.br>";
mail($to, $subject, $msg, $from);
Em todas as páginas, quando é preciso enviar um email, apenas uso o código como visto acima... e não foi preciso configurar nada na máquina, nem no PHP.INI, IIS, etc... e sempre funcionou...
O servidor de email (smtp.marte.mg.gov.br) fica em outra máquina na rede... meu computador antigo, assim como o novo, obtém o IP via outro servidor DHCP, e nunca precisou de nenhum esquema ou permissão especial para enviar email pelo meu código em PHP...
No entanto, ao mudar os sites para o Apache/Linux, a função deixou de funcionar...
Muitos colegas "especialistas" em Linux deram, é claro, sua opinião, desde a condenar o Ubuntu, o Sendmail, postfix pra lá, mail pra cá e nada de descobrir porque não funciona... e configura arquivo .fc, .conf, apt-get nisso, apt-get naquilo, e nada... creio que por falta de saber como realmente o PHP funciona ou do que ele precisa na hora de enviar emails...
Então, gostaria de saber se alguém já passou por isso e se saberia exatamente o que precisa ser configurado no Linux para que a função mail funcione...
Em tempo... No WindowsXP, o php.ini (c:\arquivos de programas\PHP\php.ini) está assim:
[mail function]
; For Win32 only
SMTP = Localhost
smtp_port = 25
; For Win32 only
;sendmail_from = me@example.com
; Force ... ... even in safe mode.
;mail.force_extra_parameters =
[SQL]
No Linux, este é o php.ini (\etc\php5\apache2\php.ini):
[mail function]
; For Win32 only.
;SMTP = localhost
smtp_port = 25
; For Win32 only.
;sendmail_from = me@example.com
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; sendmail_path = /usr/sbin/sendmail -t -i
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = On
; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log =
[SQL]
O nome do meu computador é P01140054.
O nome do usuário padrão é bergo (adminstrador)
O servidor de email é o smtp.marte.mg.gov.br (configurado assim tanto no OutLook/XP como no Evolution/Linux)
A agẽncia do email é o pop3.marte.mg.gov.br (também configurado no Outlook/XP e Evolution/Linux).
A conta que vai enviar os emails pelo site PHP é o bergo@marte.mg.gov.br.
Então... é isso...
Apesar do meu computador não ser o servidor de emails corporativo, quando usando o WindowsXP, as mensagens são enviadas sem problemas... mas no Linux o mesmo não acontece... a função mail() não acusa erro, mas "prende" momentaneamente a página e não envia nada...
Já segui (tentei pelo menos) vários roteiros de configuração do sendmail, porém, até agora não encontrei um realmente claro e completo...
Então, se alguém puder ajuda, fico muito Grato!
Abraços!
Carregando comentários...