Jump to content
nneves

Envio de Mail via PHP

Recommended Posts

nneves

Estou a fazer um site e preciso de fazer um formulário de envio de mail’s automático para um endereço de mail pré definido.

O form é o seguinte:

<form  method="post" action="contacto.php">
            <table width="100" border="0">
               <tr>
                 <td><tx>Nome:</tx></td>
                 <td><input type="text" name="nome" /></td>
               </tr>
               <tr>
                 <td><tx>E-Mail:</tx></td>
                 <td><input type="text" name="mail" /></td>
               </tr>
               <tr>
                 <td><tx>Contacto:</tx></td>
                 <td><input type="text" name="contacto" /></td>
               </tr>
               <tr>
                 <td><tx>Cargo:</tx></td>
                 <td><input type="text" name="cargo" /></td>
               </tr>
               <tr>
                 <td><tx>Curriculo:</tx></td>
                 <td><input type="file" name="curriculo" /></td>
               </tr>
               <tr>
                 <td colspan="2"><center><input type="submit" value="Enviar"/></center></td>
               </tr>
            </table>
          </form>

que depois envia para a página em php que tratava de enviar o mail. Mas eu não estou muito familiarizado com PHP podiam me ajudar?

o actual código que tenho é:

<?php $to = "nuno.avr@gmail.com"; $subject = "Envio de curriculo"; $email = $_REQUEST['email'] ; $message = $_REQUEST['message'] ; $headers = "From: $email"; $sent = mail($to, $subject, $message, $headers) ; if($sent) {print "Enviado com sucesso"; } else {print "Erro"; }
echo "<META HTTP-EQUIV='Refresh' CONTENT='0;URL=emprego.html'>";

?> 

Grato pela atenção

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

Qual o problema que dá? Se estiveres a testar isso num ambiente windows é provável que não funcione, visto que é preciso ter um servidor de e-mail instalado. Se for isso, não te preocupes ao fazeres upload para o servidor (linux), vai funcionar. Caso contrário, diz qual é o erro.

Se estiveres a aceitar sugestões, eu aconselho-te o uso da classe PHPMailer ;)

Também é melhor utilizares a função header() para redireccionares, em vez de uma meta.

(És de que zona de Aveiro? :P )

Share this post


Link to post
Share on other sites
nneves

Erro:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\aulasphp\site\pt\contacto.php on line 1

We encountered an error sending your mail

eu não entendo muito de php (quase zero) depois de alojar o site na web (suporta php) tenho que instalar alguma coisa?

Sou de Angeja ;)

Share this post


Link to post
Share on other sites
brunoais

Sim. Tens que instalar um servidor de envio de e-mails e associa-lo ao PHP.

Acho q o XAMPP tem isso.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
Lfscoutinho

Boas,

Depois de alojar o site num servidor web isso vai funcionar, não vais precisar de instalar nada.

Mas para testares localmente (ou seja, no teu pc), tens que fazer o que o @brunoais disse.

(Não és de longe, sou de Cacia ;))

Share this post


Link to post
Share on other sites
brunoais

suponho que sim. Mas escrito daquela maneira é muito difícil de ler


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
brunoais

Outra alternativa será usar a classe PHPMailer (ver aqui: http://phpmailer.worxware.com/).

É bastante bom e pode-se configurar para enviar os emails com Autenticação SMTP.

Inclusivamente o Wordpress usa esta classe para enviar os emails  ;)

Para falar verdade eu não gosto dessas classes. São demasiado lentas.

Quando programo php quero algo fácil (de usar) e simples (de processar) que é o que a função mail() oferece.

O PHPMailer oferece uma coisa fácil (de usar) e complicada (de processar).

Se agora fores juntar a outras coisas irás perceber como isto complica muito e torna uma aplicação muito mais lenta.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

Para falar verdade eu não gosto dessas classes. São demasiado lentas.

Quando programo php quero algo fácil (de usar) e simples (de processar) que é o que a função mail() oferece.

O PHPMailer oferece uma coisa fácil (de usar) e complicada (de processar).

Se agora fores juntar a outras coisas irás perceber como isto complica muito e torna uma aplicação muito mais lenta.

Primeiro, respeito a tua opção ;) É uma função nativa e como tal está lá para ser usada.

No entanto não partilho da mesma opinião... Primeiro, a classe PHPmailer permite-te enviar em 3 maneiras:

[*]Via função mail()

[*]Via sendmail()

[*]Via SMTP

Caso um dia removam a configuração e/ou funcionalidade mail() para começarem a suportar acesso directo por SMTP (com autenticação e etc), no PHPmailer é só mudar umas linhas de código, no mail()... bem, tinhas que mudar o código ;)

Além disso, contrariamente à função mail(), o PHPmailer valida várias coisas, permite-te definir um modo de debug, com ou sem autenticação, não te obriga a saberes os headers do protocolo de envio de e-mail, etc....

... No caso do mail(), é o contrário.

Mas é só a minha opinião claro :) Quem não precisa, para quê usar ?

Share this post


Link to post
Share on other sites
tmjramalho

Primeiro, respeito a tua opção :) É uma função nativa e como tal está lá para ser usada.

No entanto não partilho da mesma opinião... Primeiro, a classe PHPmailer permite-te enviar em 3 maneiras:

[*]Via função mail()

[*]Via sendmail()

[*]Via SMTP

Caso um dia removam a configuração e/ou funcionalidade mail() para começarem a suportar acesso directo por SMTP (com autenticação e etc), no PHPmailer é só mudar umas linhas de código, no mail()... bem, tinhas que mudar o código :)

Além disso, contrariamente à função mail(), o PHPmailer valida várias coisas, permite-te definir um modo de debug, com ou sem autenticação, não te obriga a saberes os headers do protocolo de envio de e-mail, etc....

... No caso do mail(), é o contrário.

Mas é só a minha opinião claro :) Quem não precisa, para quê usar ?

Estou de acordo, pode-se usar por questões de preferência ou por necessidade  :cheesygrin:

Existe outra razão para ter indicado esta classe, pois já tive problemas em alguns servidores ao enviar emails com as funções mail() e sendmail().

Ou porque o email simplesmente não era enviado ou porque ficava retido pelas definições de spam do servidor.

No meu caso resolvi simplesmente configurando o PHPMailer para enviar com Autenticação SMTP.


http://interessespessoais.com/hobbies e assuntos profissionais

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.