使用SMTP身份验证的邮件提交形式发出


issue using submit in mail form with smtp autentication

我正在做一个新网站,但是在联系表单上卡住了。

我把它们都放在同一个文件中,它叫做contacts.php

这是工作

<a class="button" href="#" onClick="document.getElementById('contact-form').reset()">Clear form</a>

不工作
<a class="button" href="#" onClick="document.getElementById('contact-form').submit()">send</a>

this work

<input name="submit" type="submit" value="Enviar" />

我在这里错过了什么使这个工作?

<a class="button" href="#" onClick="document.getElementById('contact-form').submit()">send</a>

php文件现在的样子

    <?php


if (isset($_POST['submit'])) {
$destinatarios = 'dest mail';
$nomeDestinatario = 'name';
$usuario = 'user'; 
$senha = 'pass'; 

$nomeRemetente = $_POST['name'];
$assunto = $_POST['subject'];
$_POST['message'] = nl2br('E-mail: '. $_POST['email'] ." ". $_POST['message']);

include_once("phpmailer1/PHPMailerAutoload.php");
$To = $destinatarios;
$Subject = $assunto;
$Message = $_POST['message'];
$Host = 'my host';
$Username = $usuario;
$Password = $senha;
$Port = "587";
$mail = new PHPMailer();
$body = $Message;
$mail-> IsSMTP(); // telling the class to use SMTP
$mail-> Host = $Host; // SMTP server 
$mail-> SMTPDebug = 0; // enables SMTP debug information (for testing) 
// 1 = errors and messages 
// 2 = messages only 
$mail-> SMTPAuth = true; // enable SMTP authentication 
$mail-> Port = $Port; // set the SMTP port for the service server 
$mail-> Username = $Username; // account username 
$mail-> Password = $Password; // account password 
$mail-> SetFrom($usuario, $nomeDestinatario); 
$mail-> Subject = $Subject;
$mail-> MsgHTML($body);
$mail-> AddAddress($To, ""); 
if(!$mail-> Send()) 
{ 
$mensagemRetorno = 'Erro ao enviar e-mail: '. print($mail->ErrorInfo);
}
else 
{ 
$mensagemRetorno = 'E-mail enviado com sucesso!'; 
}
} 
?>

<!DOCTYPE html>
<html lang="pt-PT">
<head>
    <title>Sapphira - Telheiras</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="css/reset.css" type="text/css" media="screen">
    <link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
    <link rel="stylesheet" href="css/zerogrid.css" type="text/css" media="all">
    <link rel="stylesheet" href="css/responsive.css" type="text/css" media="all">  
    <script src="js/jquery-1.6.2.min.js" type="text/javascript"></script>
    <script src="js/cufon-yui.js" type="text/javascript"></script>
    <script src="js/cufon-replace.js" type="text/javascript"></script>
    <script src="js/Vegur_300.font.js" type="text/javascript"></script>
    <script src="js/Vegur_400.font.js" type="text/javascript"></script> 
    <script src="js/FF-cash.js" type="text/javascript"></script>    
    <script type="text/javascript" src="js/css3-mediaqueries.js"></script>   
    <!--[if lt IE 7]>
        <div style=' clear: both; text-align:center; position: relative;'>
            <a href="http://www.microsoft.com/windows/internet-explorer/default.aspx?ocid=ie6_countdown_bannercode"><img src="http://storage.ie6countdown.com/assets/100/images/banners/warning_bar_0000_us.jpg" border="0"  alt="" /></a>
        </div>
    <![endif]-->
    <!--[if lt IE 9]>
        <script type="text/javascript" src="js/html5.js"></script>
        <link rel="stylesheet" href="css/ie.css" type="text/css" media="screen">
    <![endif]-->
</head>
<body id="page5">
    <div class="bg">
<!-- header -->
        <header>
            <div class="menu-row">
                <div class="main">
                    <div class="zerogrid">
                        <div class="row">
                            <div class="col-full"><div class="wrap-col" style="margin-top: 0px;">
                                <nav class="wrapper">
                                    <ul class="menu">
                                        <li><a  href="index.html">Ínicio</a></li>
                                        <li><a href="servicos.html">Serviços</a></li>
                                         <!-- <li><a href="therapies.html">Terapias</a></li> -->
                                        <li><a href="acerca.html">Acerca</a></li>
                                        <li class="last-item"><a class="active" href="contacts.php">Contatos</a></li>
                                    </ul>
                                </nav>
                                <h1><a href="index.html"><img src="images/logo.png" title="Sapphira"/></a></h1>
                            </div></div>
                        </div>
                    </div>
                </div>
            </div>
        </header>
<!-- content -->
        <section id="content">
            <div class="main">
                <div class="zerogrid">
                    <div class="row">
                        <article class="col-2-3"><div class="wrap-col">
                            <h3 class="p2">Contact Form</h3>
                            <form action="" id="contact-form" method="post" enctype="application/x-www-form-urlencoded">                    
                                <fieldset>
                                      <label><span class="text-form">Your Name:</span><input name="name" id="name" type="text" /></label>
                                      <label><span class="text-form">Your Email:</span><input name="email" id="email" type="text" /></label>   
                                      <label><span class="text-form">Subject:</span><input name="subject" id="subject" type="text" /></label>                                   
                                      <div class="wrapper">
                                        <div class="text-form">Your Message:</div>
                                        <div class="extra-wrap">
                                            <textarea id="message" name="message"></textarea>
                                            <div class="clear"></div>
                                            <div class="buttons">
                                            <a class="button" href="#" onClick="document.getElementById('contact-form').reset()">Clear form</a>
                                            <a class="button" href="#" onClick="document.getElementById('contact-form').submit()">send</a>
                                    //<input name="submit" type="submit" value="Enviar" />
                                            </div> 
                                        </div>
                                      </div>                            
                                </fieldset>                     
                            </form>
                        </div></article>
                        <article class="col-1-3"><div class="wrap-col">
                            <h3 class="p2">Postal Address</h3>
                            <figure class="indent-bot">
                                <iframe width="300" height="222" src="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=Brooklyn,+New+York,+NY,+United+States&amp;aq=0&amp;sll=37.0625,-95.677068&amp;sspn=61.282355,146.513672&amp;ie=UTF8&amp;hq=&amp;hnear=Brooklyn,+Kings,+New+York&amp;ll=40.649974,-73.950005&amp;spn=0.01628,0.025663&amp;z=14&amp;iwloc=A&amp;output=embed"></iframe>
                            </figure>
                            <dl>
                                <dt class="prev-indent-bot color-3"><strong>8901 Marmora Road, Glasgow, D04 89GR.</strong></dt>
                                <dd><span>Freephone:</span>  +1 800 559 6580</dd>
                                <dd><span>FAX:</span>  +1 504 889 9898</dd>
                                <dd><span>E-mail:</span> <a href="#">mail@demolink.org</a></dd>
                            </dl>
                        </div></article>
                    </div>
                </div>
            </div>
        </section>
    </div>

    <script type="text/javascript"> Cufon.now(); </script>
</body>
</html>

据我所知,Firefox期望在提交表单时,表单中必须至少有一个可用的提交按钮。

在你的情况下,你可以做的是,你可以添加一个提交按钮,就像下面的样式是显示无和一些id,这样它就不会在UI上可见

 <input name="submit" id="Enviar" type="submit" value="Enviar" style="display:none;"/>
并调用一个javascript函数,该函数将调用此提交按钮的click事件,而不是像下面那样直接提交表单
<a class="button" href="#" onClick="javascript:callme()">send</a>
function callme(){
   document.getElementById('Enviar').click();
}

希望对大家有所帮助