PHP mail

Iniciado por maurov, 19 de Julho de 2011, 17:29

tópico anterior - próximo tópico

maurov

<?php$to = 'eu@eu.com.br';$from = 'eu@eu.com.br';$subject = 'email pra mim';$msg = "Recado novo";mail($to, $subject, $msg) or die ("Nao foi possivel enviar e-mail");?>


O arquivo está em http://localhost/recadosimples.php em uma máquina em rede interna ligada a web por ADSL.
Ao executar, só exibe a mensagem do die. O que está faltando na configuração?
[ ]

Felix

O PHP é chato para caramba com aspas simples e duplas, tente então colocar suas variáveis dessa forma:

<?php$to = "eu@eu.com.br";$from = "eu@eu.com.br";$subject = "email pra mim";$msg = "Recado novo";mail($to, $subject, $msg) or die ("Nao foi possivel enviar e-mail");?>



Posso estar errado, pois são sistemas diferentes. Aqui fiz o teste em meu Slackware e o e-mail só foi enviado após iniciar o serviço sendmail; mas feito isso recebi o e-mail normalmente em minha caixa de entrada do gmail.

maurov

Uso Ubuntu 10.04
Troquei aspas simples por duplas, mas não surtiu efeito.
O que exatamente é este serviço sendmail, onde se localiza?
[ ]

rbernard

O problema é mesmo o sendmail e não as aspas.

Para verificar se o serviço existe e está ativo:

sudo service sendmail

Para instalar, caso não exista:

sudo aptitude install sendmail

maurov

Instalei o Postfix ao invés do sendmail pois está mais intagrado com o ubuntu.
Agora o scrpit dá como enviado, mas o e-mail não chega na minha caixa postal.
Segue resumo do log do mail.info

CitarJul 20 12:02:13 mauro-desktop postfix/pickup[4152]: 31C86E0339: uid=33 from=<www-data>
Jul 20 12:02:13 mauro-desktop postfix/cleanup[4291]: 31C86E0339: message-id=<20110720150213.31C86E0339@mauro-desktop>
Jul 20 12:02:13 mauro-desktop postfix/qmgr[3043]: 31C86E0339: from=<www-data@meudominio.com.br>, size=386, nrcpt=1 (queue active)
Jul 20 12:02:13 mauro-desktop postfix/local[4294]: 31C86E0339: to=<mauro@meudominio.com.br>, relay=local, delay=0.18, delays=0.12/0.01/0/0.05, dsn=2.0.0, status=sent (delivered to mailbox)
Jul 20 12:02:13 mauro-desktop postfix/qmgr[3043]: 31C86E0339: removed

obs. Dei um enviar nesta tela e a mensagem sumiu. Tomara que não saia duplicada.

maurov

Mudei o $to para minha conta do gmail. A mensagem é sobre IP não autorizado.

CitarJul 20 12:09:49 mauro-desktop postfix/pickup[4152]: CCB35E0339: uid=33 from=<www-data>
Jul 20 12:09:49 mauro-desktop postfix/cleanup[4426]: CCB35E0339: message-id=<20110720150949.CCB35E0339@mauro-desktop>
Jul 20 12:09:49 mauro-desktop postfix/qmgr[3043]: CCB35E0339: from=<www-data@meudominio.com.br>, size=395, nrcpt=1 (queue active)
Jul 20 12:09:59 mauro-desktop postfix/smtp[4428]: CCB35E0339: to=<minhaconta@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.39.27]:25, delay=9.9, delays=0.12/0.01/7.3/2.5, dsn=5.7.1, status=bounced (host gmail-smtp-in.l.google.com[74.125.39.27] said: 550-5.7.1 [201.86.206.211] The IP you're using to send mail is not authorized to 550-5.7.1 send email directly to our servers. Please use the SMTP relay at your 550-5.7.1 service provider instead. Learn more at                          550 5.7.1 http://mail.google.com/support/bin/answer.py?answer=10336 24si1487565fav.16 (in reply to end of DATA command))
Jul 20 12:09:59 mauro-desktop postfix/cleanup[4426]: B1ABBE033C: message-id=<20110720150959.B1ABBE033C@mauro-desktop>
Jul 20 12:09:59 mauro-desktop postfix/bounce[4430]: CCB35E0339: sender non-delivery notification: B1ABBE033C
Jul 20 12:09:59 mauro-desktop postfix/qmgr[3043]: B1ABBE033C: from=<>, size=2848, nrcpt=1 (queue active)
Jul 20 12:09:59 mauro-desktop postfix/qmgr[3043]: CCB35E0339: removed
Jul 20 12:09:59 mauro-desktop postfix/local[4432]: B1ABBE033C: to=<www-data@meudominio.com.br>, relay=local, delay=0.12, delays=0.07/0.01/0/0.04, dsn=2.0.0, status=sent (delivered to mailbox)
Jul 20 12:09:59 mauro-desktop postfix/qmgr[3043]: B1ABBE033C: removed

rbernard

Citação de: maurov online 20 de Julho de 2011, 12:19
Mudei o $to para minha conta do gmail. A mensagem é sobre IP não autorizado.

Isso é esperado, pois a sua máquina não está autorizada a enviar e-mail do domínio. Os servidores de e-mail hoje estão cada vez mais batalhando contra o SPAM e utilizam técnicas (DNS reverso, por exemplo) para verificar se o servidor de envio é confiável.

Felix

A resposta ao erro está no próprio log, veja o link: http://mail.google.com/support/bin/answer.py?answer=10336

Citar
O IP que você usa para enviar e-mails não está autorizado...

Para evitar spams, o Gmail recusa e-mails com endereço IP de envio e domínio de envio diferentes. Para enviar e-mails do seu servidor para o Gmail, recomendamos que você use a retransmissão SMTP fornecida pelo seu ISP. Observe que não podemos colocar endereços IP na lista branca ou abrir exceções no momento.

Só uma dúvida: na variável $from você está colocando um e-mail que existe de verdade ou apenas algo de teste? Digo isso pois no teste que eu fiz usei meu próprio e-mail gmail e foi enviado. Porém, claro, os headers vieram conforme a configuração de minha máquina (coisa que dá para manipular por PHP também).

maurov

Pelo link do google eu vi aquela questão de verificação de IP. Enviei antes para meu endereço, cujo domínio está na locaweb, e não apareceu retorno, talvez façam a mesma verificação e não retornem o erro para o remetente. Considero aceitável esta filtragem no provedor.

Usei endereços de e-mail de verdade, não de teste.

rbernard

Se você precisa mesmo enviar e-mail através da sua máquina, uma possibilidade é usar autenticação do e-mail, assim não haverá bloqueio.

maurov

Legal,
li o conteúdo do phpmailer.
Acho que trocamos ideias e experiências, objetivo este do forum.

Vou dar este tópico por encerrado.
Abraços e até a próxima