1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

PHP mail

Discussão em 'Web Development' iniciada por K0mA, 10 de Fevereiro de 2007. (Respostas: 10; Visualizações: 2688)

  1. K0mA

    K0mA Power Member

    Boas,

    Como posso testar um script PHP que vai usar a função de enviar email sem ter um servidor de mail para testar?

    Há algum servidor público ou que alguém conheça que se possa usar?

    Caso não haja terei de instalar um? há algum que seja gratuito e fácil de configurar?
     
  2. Feiticeiro

    Feiticeiro Power Member

    Tens um servidor de mail para testar isso: qualquer coisa "Mercury". Googla isso ou outros servidores no Google.
     
  3. shello

    shello Moderador
    Staff Member

    Tentei correr o exemplo 1037, localmente, com as configurações base que vem no pacote XAMPP, e deu-me este erro:
    Código:
    [B]Warning[/B]:  mail() [[URL="http://127.0.0.1/function.mail"]function.mail[/URL]]: SMTP server response: 553 We do not relay non-local mail, sorry. in [B]C:\xampp\htdocs\mail.php[/B] on line [B]43[/B]
    Isto com o mercury ligado. Sem o Mercury não deixa:
    Código:
    [B]Warning[/B]:  mail() [[URL="http://127.0.0.1/function.mail"]function.mail[/URL]]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in [B]C:\xampp\htdocs\mail.php[/B] on line [B]43[/B]
    Pode ser das configurações.

    PHP Mail

    Não vejo maneira de enviar um e-mail sem um servidor SMTP.
    Não conheço servidores públicos.
    O Mercury é um servidor de e-mail gratuito.

    Cumps
     
  4. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    A experiência que EU tenho de envio de e-mails não é nem de PHP nem de qualquer tipo de programação relacionada com a web. É de Visual Basic.

    Tenho por aqui um código source dum programa que procura servidores MX (Mail eXchange) com base no servidor de e-mail dado. Isto é, executando o source que tenho, a resposta dada ao servidor hotmail.com é:
    e a gmail.com é:
    ZMail.pt:
    iol.pt:
    Tudo isto apenas com um objectivo: o que os relayers fazem na realidade é conectar-se aos MX servers do endereço do destino (fazem um query de hotmail.com e ligam-se a mx1.hotmail.com por ser o Best Server), e conectam-se a esse servidor, e seguem o protocolo (SMTP). Qualquer servidor MX faz relay para dentro da própria rede, já que é esse mesmo o objectivo dele - entregar o mail para dentro da sua rede.

    Googlem "MX Query", ou em último recurso posso dar-me ao trabalho de analisar isto e ver como trabalha :P

    E para que disse eu isto tudo? Porque para enviar um mail tem-se obrigatoriamente de se conectar a qualquer servidor. Agora, com o MX Query, conecta-se directamente ao servidor adequado.

    Cumps [[[[[[[[]]]]]]]]
    angelofwisdom
     
  5. fil79

    fil79 Power Member

    já viste as configurações dp teu php.ini?
     
  6. K0mA

    K0mA Power Member

    Obrigado pelas respostas.

    Então sendo assim não é necessário instalar um servidor de email.

    Basta configurar no php.ini que me quero ligar a mx1.hotmail.com, caso o email seja enviado para a para o hotmail (relay para a própria rede)?

    Infelizmente tentei e não deu!

    EDITADO1: já deu, bastava descomentar o sendmail_from do php.ini
    deixo aqui um exemplo:

    PHP:
     $assunto "Formulario recebido\n";
    $headers "recebido";
    $headers .= "Content-Type: text/plain;\r\n charset=iso-8859-1\r\n"

        
    mail("[email protected]"$assunto$headers);
        echo 
    "fim";
    Com as seguintes linhas no php.ini:

    SMTP = mx1.hotmail.com
    smtp_port = 25

    ; For Win32 only.
    sendmail_from = [email protected]


    Era bom era que desse para alterar o SMTP = mx1.hotmail.com apartir do código, sem mexer no php.ini, mas não deve dar...


    Aqui fica um endereço onde podem fazer uma MX query a um dado dominio (conforme explicado pelo angelofwisdom):

    http://www.mxtoolbox.com/index.aspx


    EDITADO2: correcção no código
     
    Última edição: 11 de Fevereiro de 2007
  7. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Esse era o Best Server no momento em que fiz o Query. Pode, a dado momento, haver servidores mais indicados caso esse esteja sobrelotado. Daí te aconselhar a fazer o Query a cada vez que enviares um e-mail ;) mas caso não queiras queries desnecessários, podes sempre meter aí uma lista "hard-coded". Mete os servidores q meto os servidores MX ;)
     
  8. K0mA

    K0mA Power Member

    Obrigadíssimo angel| talvez pro hotmail e para o gmail desse jeito a lista.
     
  9. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Para esses dois já tens a lista lá em cima :P
    Vou mesmo dar uma vista de olhos e ver como trabalha isto do MX Query. Pode vir a dar jeito saber como funciona. Se perceber, dou-te aqui uns detalhes e pode ser que consigas fazer uma função em PHP para os Queries :)
     
  10. K0mA

    K0mA Power Member

    Mais uma vez obrigado, agora vou dormir, boa noite. :)
     
  11. K0mA

    K0mA Power Member

    Se quiserem mudar os parâmetros do php.ini para usarem um servidor diferente de localhost através do código:


    mudar o sendfrom:

     
    Última edição: 11 de Fevereiro de 2007

Partilhar esta Página