本文目录一览:
怎么利用php发送邮件求详细教程
PHP虽然提供了mail()函数,但并不好用,而PHPMailer是一个不错的邮件发送工具,接下来将详细介绍,需要了解的朋友可以参考下:
本人使用wamp集成开发环境,Apache2.4.4, Mysql5.6.12 , php5.4.12.开始的时候使用mail()发送邮件,更改配置始终无法成功,了解到mail()函数使用需要sendmail程序。又下载了sendmail程序扩展包。按照网上的说法也改好了php.ini和sendmail.ini。使用foxmail 7.1创建了自己的qq邮箱账户,开启了POP3/SMTP服务,更改发件服务器为POP3,使用和收件服务器相同的身份验证,结果还是报错:Warning: mail(): SMTP server response: 503 Error: need EHLO and AUTH first ! in F:\PHP\wamp\www\mail.php on line 8。以下是使用mail()函数发送邮件的php代码:
[php] view plain copy
span style="font-size:14px"?php
$to = "757006080@qq.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "757006080@qq.com";
$headers = "From: $from";
$send=mail($to,$subject,$message,$headers);
if($send)
echo "Mail Sent";
else
echo "Sorry,mail sent failed!"
?/span
在CSDN论坛上发现phpmailer可以方便快捷的发送邮件,以下写出详细使用教程:
1.需要下载PHPMailer文件包,(点击打开链接)
2.确认你的服务器已经系统支持socket,通过phpinfo()查看是否支持socket;
3.把文件解压到你的WEB服务器目录下,就可以使用PHPMailer发送邮件了。
以下为前台表单php代码:
[php] view plain copy
span style="font-size:14px"html
body
h3phpmailer Unit Test/h3
请你输入font color="#FF6666"收信/font的邮箱地址:
form name="phpmailer" action="testemail.php" method="post"
input type="hidden" name="submitted" value="1"/
邮箱地址: input type="text" size="50" name="to" /
br/
input type="submit" value="发送"/
/form
/body
/html /span
以下为后台程序:
[php] view plain copy
?php
/**
* Simple example script using PHPMailer with exceptions enabled
* @package phpmailer
* @version $Id$
*/
header("content-type:text/html;charset=utf-8");
ini_set("magic_quotes_runtime",0);
require('class.phpmailer.php');
try {
$mail = new PHPMailer(true); //New instance, with exceptions enabled
//$body = file_get_contents('contents.html');
//$body = preg_replace('/\\\\/','', $body); //Strip backslashes
$to = $_POST['to'];
$mail-CharSet="GB2312";//设置邮件字符编码否则邮件会乱码
$mail-Encoding="base64";
$mail-IsSMTP(); // tell the class to use SMTP
$mail-SMTPAuth = true; // enable SMTP authentication
$mail-Port = 25; // set the SMTP server port
$mail-Host = "smtp.qq.com"; // SMTP server
$mail-Username = "757006080@qq.com"; // SMTP server username
$mail-Password = "000000000000"; // SMTP server password
//$mail-IsSendmail(); // tell the class to use Sendmail
$mail-AddReplyTo("757006080@qq.com","han qing");
$mail-From = "757006080@qq.com";
$mail-FromName = "han qing";
//$to = "hanqing757@gmail.com";
$mail-AddAddress($to);
$mail-Subject =$mail-Subject = "=?utf-8?B?" . base64_encode("First PHPMailer Message") . "?="; -php表单message
$mail-Body = "h1phpmailer演示/h1 这是用PHPMAILER发的第一份邮件,从QQ邮箱发到Google邮箱.";
$mail-AddAttachment("F:/myloe.jpg");
$mail-AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test -php表单message
$mail-WordWrap = 80; // set word wrap
//$mail-MsgHTML($body);
$mail-IsHTML(true); // send as HTML
$mail-Send();
echo 'Message has been sent.';
} catch (phpmailerException $e) {
echo $e-errorMessage();
}
?
php中message什么意思
PHP返回的错误信息。php中出现message的信息,说明PHP返回的错误。PHP(PHP:HypertextPreprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。-php表单message
php提交表单后显示提交成功但无显示记录
在 php 顶部加入一行
error_reporting(E_ALL);
再提交, 看是否有什么错误.
另外, 你这样直接从 $_POST 中取数据并用拼接SQL来执行, 会出现很多严重的安全问题.
建议另外写一个字符过滤函数
function paramFilter($str) {
在这里移除不安全因素
return $str;
}
$title = paramFilter($_POST['title']);
php表单问题,求助
你没有理解到mysql_query()函数的一些常识
mysql_query()函数的作用,就是向数据库发送一条sql查询
而这个函数的执行成功与否, 与数据库有没有相关的数据是没有关系的
只要sql语句语法正确, sql语句的结构和数据库结构想对应, 相关的权限正确, 那么, 无论数据库有没有相关的数据,这个函数都会返回真
根据这个原理,
if (!mysql_query("SELECT username FROM `users` where username='$username'"))
这个if语句的条件会永远成立, 那么
message("用户名以存在", $_SERVER['HTTP_REFERER']);
会永远执行, 那肯定是总是提示你用户名已经存在了!
建议使用mysql_num_rows()这个函数来判断, 这个函数的作用是返回sql语句所对应的数据库数据的行数, 也就是有一条符合就会返回1, 有2条就返回2, 没有的话, 就返回0
建议代码如下:
if (!mysql_query("SELECT username FROM `users` where username='$username'"))
{
message("用户名以存在", $_SERVER['HTTP_REFERER']);
}
//改成:
$Reault = mysql_query("SELECT username FROM `users` where username='$username'");
!mysql_num_rows( $Reault ) or message("用户名以存在", $_SERVER['HTTP_REFERER']);