2013-02-04 72 views
0

首先,我想说我只是一个非常新手在PHP。通过电子邮件从PHP的联系表格发送信息

我有这个简单的PHP,因为它是在这一刻,当它发送信息它似乎是一个可怕的“好”的消息。

能不能帮我改进这个PHP搭配: - 更好的代码(?那是正确的可能是更好) -I想(在一个盒子或类似的东西等),以便增加发烧友答案建议用户他的信息已被发送。

另一件事是我不知道这是工作。我已安装xampp,并在本地它不起作用。我也尝试完成所有文件上传到服务器的形式,我仍然在等待他们......邮件到达我的收件箱的奇迹? = S也许我做错了什么?

<?php 
if(isset($_POST["nombre"]) && isset($_POST["email"]) && isset($_POST["consulta"])){ 
$mymail = "[email protected]"; 
$subject = "Consulta"; 
$contenido = ":: Nombre: ". $_POST["nombre"]."\n"; 
$contenido .= ":: E-mail: ". $_POST["email"]."\n"; 
$contenido .= ":: Escribiò el siguiente mensaje: ". $_POST["consulta"]."\n"; 

$header = "From:".$_POST["email"]."\n"; 

mail($mymail, $subject, utf8_decode($contenido));*/ 
echo "&estatus=ok&"; 
}?> 

在此先感谢您的帮助! 问候,

回答

0

在了解PHP方面和邮件功能,这个Link是一个相当不错的资源(就像一般的PHP /网页编码站点一样)
你给用户的消息在最后一行,它表示echo“& status = ok &“; Echo是将文本输出到页面的功能。如果你知道html,你可以输出任何你想要的html

echo "<b>This success message is in BOLD</b>"; 

你要小心行情,虽然,因为你需要Escape他们连同其他一些特殊字符,例如

echo "This \"code\" will\nprint like \\\"this\\\""; 

看起来像

This "code" will 
print like \"this\" 

不管怎么说,这是怎么回事关上切线。至于你的xampp,你必须配置你的smtp设置。看看这个Post

让我知道你的问题是否回答:)

0

好,所以你的代码看起来很好,如果你想改变消息,你应该改变echo语句中的文本。如echo "Some fancy html in here";。关于邮件没有收到的第二个问题可能是由于PHP依赖于本地smtp服务器默认情况下发送邮件,这在Windows上是不存在的,所以它不发送它,如果你有xampp可能和Linux上取决于许多它可能会发送它的变量并将其发送到您的垃圾邮件文件夹中,或者它可能不会发送它。如果你想使用第三方SMTP服务器,例如Gmail一个只是为了测试目的,最好的和最简单的方法是使用一些库,如:

http://swiftmailer.org/docs/sending.html

,并定义第三方SMTP细节。

的示例代码:

require_once 'lib/swift_required.php'; 

// Create the Transport 
$transport = Swift_SmtpTransport::newInstance('smtp.example.org', 25) 
    ->setUsername('your username') 
    ->setPassword('your password') 
    ; 

/* 
You could alternatively use a different transport such as Sendmail or Mail: 

// Sendmail 
$transport = Swift_SendmailTransport::newInstance('/usr/sbin/sendmail -bs'); 

// Mail 
$transport = Swift_MailTransport::newInstance(); 
*/ 

// Create the Mailer using your created Transport 
$mailer = Swift_Mailer::newInstance($transport); 

// Create a message 
$message = Swift_Message::newInstance('Wonderful Subject') 
    ->setFrom(array('[email protected]' => 'John Doe')) 
    ->setTo(array('[email protected]', '[email protected]' => 'A name')) 
    ->setBody('Here is the message itself') 
    ; 

// Send the message 
$result = $mailer->send($message); 

是非常简单的,我认为,你还可以添加:

if($result){ echo "Message has been sent"; }else{ echo "Error!"; } 

在最后。这应该做的伎俩......

BTW Gmail的设置是:

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl'); 

,并使用Gmail电子邮件和密码,用户名和密码,因此...

0

这是一个很大的问题。

首先,您要在本地测试并使用简单的邮件客户端来检查您的邮件传输代理是否会向本地帐户发送电子邮件。没有PHP

然后得到邮件要在远程电子邮件账户(Gmail的)再没有PHP

然后让你的PHP工作在本地发送。

最后尝试从PHP远程电子邮件发布。

您的脚本需要验证输入表单中的输入参数,以避免垃圾邮件,请阅读例如www.w3schools.com的初学者。对于示例代码,请下载并查看一些成熟的代码,例如Drupal或Wordpress,然后看看它们是如何实现的。由于发送电子邮件最终取决于您的传输代理和远程端(SSL,TLS),这些端可能需要密钥验证才能接收邮件进行中继。

Stack Exchange上也有很多参考和示例。你需要自己做一些研究。

相关问题