2012-02-08 82 views
0

这是我的代码,我很新的PHP。所以,我不知道错误在哪里,为什么它不发送电子邮件.. 有以下代码,它不发送电子邮件。事实上,它只是显示界面。当我点击按钮时,它不会执行任何操作。我正在使用Wamp Server和Dreamweaver。请任何机构提供帮助。发送电子邮件,在PHP通过Gmail

<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>EmailForm</title> 
    <style type="text/css"> 
    body { 
    margin-left: 10px; 
    margin-top: 10px; 
    background-color: #FFF; 
     } 
     body,td,th { 
    color: #666; 
     } 
     </style> 
    <?PHP 
    if(isset($_POST['Submit1'])) 
    {$Email=$_POST['Email']; 
     $Comments=$_POST['Comments']; 

     $headers = 'MIME-Version: 1.0' . "\r\n"; 
     $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
     $headers .= ‘From: [email protected]' . "\r\n"; 

     if(mail('[email protected]','Hello',$Comments,$headers)) 
     {echo("Your Email is sent successfully"); 
     } 
     Else 
     {echo("Email Sending Failed");} 
     } 
     ?> 
      </head> 

     <body text="#999999"> 
     <form id="EmailForm" name="EmailForm" method="POST"action="file:///E|/Sites/EmailForm.php"> 
     <table width="450px"> 
    <tr><td valign="top"> 
    <label>First Name *</label></td> 
    <td valign="top"> 
    <input name="FName" type="text" size="30px" /></td></tr> 
    <tr><td valign="top"> 
    <label>Last Name *</label></td><td valign="top"> 
    <input name="LName" type="text" size="30px"/> 
    </td></tr> 
    <tr><td valign="top"> <label>Email Address *</label></td><td valign="top"> 
    <input name="Email" type="text" size="30px"/></td></tr> 
    <tr><td valign="top"> 
     <label>Comments *</label></td><td valign="top"> 
    <textarea name="Comments" cols="25" rows="5"></textarea></td></tr> 
    <tr><td colspan="2" style="text-align:center"> 
    <input name="Submit1" type="Submit" value="Submit" style="color:#000" /></td></tr> 
    </table> 
    </form> 


    </body> 
    </html> 
+0

第21行的语法错误: $ headers。='From:[email protected]'。为 “\ r \ n” 个; 应该是 $ headers。='From:[email protected]'。为 “\ r \ n” 个; 也...糟糕的形式混合双引号和单引号... – 2012-02-08 18:00:58

回答

0
$headers .= ‘From: [email protected]' . "\r\n"; 

你有一个在这里,这是不是PHP识别为报价。改为使用'

0

对不起,我在读这一点,如果你阅读我的文章前,先检查您的SMTP是否完好谷歌使用SSL,权威性以及应以成功发送传递端口,

下一页您qoutes混合与单和双。尝试使用双重qoutes并转义它。

+0

不,我没有。在php.ini文件中,我有修改的变化像SMTP = [email protected]和Send_From =我的电子邮件ID ..是否仍然需要配置 – 2012-02-08 18:15:51

+0

是的每个包括谷歌的一些smtp需要你有auths,我不知道正确的语法,因为我没有使用PHP本地邮件。但这绝对是你的邮件出现问题的部分原因。尝试谷歌搜索gmail的SMTP端口和ssl和其他,以及如何使用它与邮件() – tomexsans 2012-02-08 18:43:12

+0

先生,它做的nthng。意思是当我点击Submit时,所有的字段都被清除并且没有电子邮件被发送。 在php.ini文件中,我有以下配置。 SMTP =本地主机 [email protected] .. 我做这些chnges后保存php.ini文件..但是,当我在本地主机中打开phpinfo().. SMTP = localhost像往常一样.. 而在Sentmail_From中:没有值写入。 如果我的SMTP设置有问题。如何改变这些。请你能帮助我更多。我很新,我已经在网上搜索了2天这个东西,并得到越来越多的困惑..请帮助 – 2012-02-09 10:32:44

0

添加这样的事情你的表单操作,以确保POST请求被发送到正确的脚本:

<form id="EmailForm" name="EmailForm" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 

$ _ SERVER [“PHP_SELF”]引用当前脚本。

+0

它没有为我工作.. $ _Server代码,因为它在地址栏中,并且页面说,错误403,禁止 – 2012-02-08 18:26:36

+0

尝试将其更改为:

”> – 2012-02-08 19:13:26