0

首先,我想说我只是 php 的新手。

我有这个简单的 php,就目前而言,当它发送信息时,它会显示一个可怕的“Ok”消息。

你能帮我改进这个 php:-更好的代码(可以吗?会更好吗?)已发送。

另一件事是我不确定这是否有效。我安装了 xampp,但在本地它无法正常工作。我还尝试使用上传到服务器的所有文件填写表格,但我仍在等待它们......邮件到达我的收件箱的奇迹?=S 也许我做错了什么?

<?php
if(isset($_POST["nombre"]) && isset($_POST["email"]) && isset($_POST["consulta"])){
$mymail = "myemail@gmail.com";
$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&";
}?>

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

4

3 回答 3

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('john@doe.com' => 'John Doe'))
  ->setTo(array('receiver@domain.org', 'other@domain.org' => '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!"; }

最后。这应该够了吧...

顺便说一句,gmail的设置是:

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

并相应地使用您的 gmail 电子邮件和密码作为用户名和密码...

于 2013-02-04T03:42:48.040 回答
0

在理解 PHP 和邮件功能方面,这个链接是一个很好的资源(一般来说,PHP/web 编码的网站也是如此。
你给用户的消息是在最后一行显示 echo "&status =ok&"; Echo是向页面输出文本的函数。如果你知道 html,你可以输出任何你想要的 html,例如

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

不过,您需要小心使用引号,因为您需要将它们与其他一些特殊字符一起转义,例如

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

看起来像

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

无论如何,这正在切线。至于你的 xampp,你必须配置你的 smtp 设置。看看这篇文章

如果您的问题得到解答,请告诉我:)

于 2013-02-04T03:44:57.223 回答
0

这是一个很大的问题。

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

然后让邮件再次发送到远程电子邮件帐户(gmail)没有php

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

最后尝试从 php 发送远程电子邮件。

您的脚本需要验证输入表单中的输入参数,以避免垃圾邮件,例如www.w3schools.com以供初学者阅读。

对于示例代码,下载并查看一些成熟的代码,例如 Drupal 或 Wordpress,看看他们是如何做到的。由于发送电子邮件最终取决于您的传输代理和远程端(SSL、TLS),这可能需要密钥身份验证才能允许接收邮件进行中继。

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

于 2013-02-04T03:52:45.007 回答