很多站长朋友们都不太清楚网易smtpphp,今天小编就来给大家整理网易smtpphp,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP用网易企业邮箱怎么自动发送邮件? 2、 php用smtp 发送邮件失败提示无法连接到主机 3、 PHP中 Warning: mail(): Failed to connect to mailserver at "stmp.163.com" port 25, verify your "SMTP 4、 如何通过php发送邮件?php的mail函数不能用! 5、 PHP 如何编写用户注册后自动发送邮件到用户邮箱? 6、 请问一下,PHP配置SMTP怎么弄? PHP用网易企业邮箱怎么自动发送邮件?企业邮箱好像不是25端口吧?
登录企业邮箱,确定里面的相关协议是否开启,各项参数是否正确!
php用smtp 发送邮件失败提示无法连接到主机PHPMailer是一个邮件发送插件有很多朋友使用它来发邮件,但也有不少朋友在使用期PHPMailer发邮件时就碰到”SMTP 错误:无法连接到 SMTP 主机“错误了,出现这种问题我们从几个点来分享,一个是邮箱配置有问题,另一个是我们的php.ini环境中有些函数没开启导致的,下面我来给各位详细介绍一下问题的排除技巧。
原因分析
出现这个问题说明无法解析 SMTP 主机 <主机 id> 的名称。
解决办法,这个要看邮箱支付不支持pop3发送与接收邮件这个可以邮件官方看看,如QQ邮件
phpmailer error SMTP Error: Could not connect to SMTP host Could not instantiate mail function
弄了半天,原来是不同邮件系统要求的smtp请求不同,但是都允许大写,有些不支持小写,比如网易,腾讯的邮箱。
原来的设置
$mail->SMTPAuth = true;
$mail->Mailer = "smtp";
$mail->Host = "smtp.qq.com";
$mail->Port = 25; //设置邮件服务器的端口,默认为25
$mail->Username = "8515888@qq.com";
$mail->Password = "xxxxxxxxxx";
把smtp改成大写就可以了
$mail->Mailer = "SMTP";
分析问题2,
还有大家就是使用了空间而不是服务器这样有可能像fsockopen、pfsockopen都禁用了,因为phpmailer需要使用fsockopen、pfsockopen才可以发邮件所以就会有问题了。
解决办法
找到class.smtp.php文件,大约在文件的128行吧,有这样一段代码:
// connect to the smtp server
$this->smtp_conn = @fsockopen($host, // the host of the server
$port, // the port to use
$errno, // error number if any
$errstr, // error message if any
$tval); // give up after ? secs
方法1:将fsockopen函数替换成pfsockopen函数
因为pfsockopen的参数与fsockopen基本一致,所以只需要将@fsockopen替换成@pfsockopen就可以了。
方法2:使用stream_socket_client函数
一般fsockopen()被禁,pfsockopen也有可能被禁,所以这里介绍另一个函数stream_socket_client()。
stream_socket_client的参数与fsockopen有所不同,所以代码要修改为:
$this->smtp_conn = stream_socket_client("tcp://".$host.":".$port, $errno, $errstr, $tval);
这样就可以了。
PHP中 Warning: mail(): Failed to connect to mailserver at "stmp.163.com" port 25, verify your "SMTP邮件发送不成功是因为没有获取到smtp的授权码,详细步骤:
1、需要注册一个163的邮箱。
2、登陆163邮箱。
3、点击设置中的SMTP进行设置,默认是不开启的。
4、开启的时候,需要设置授权码,这个很重要,一定要记住授权码,因为下面的代码里面需要用到该密码,而不是163邮箱的登录密码。
用的登录密码,报错信息:ThefollowingFromaddressfailed:...SMTPservererror:authenticationisrequired,smtp...
开启成功后,保存。
5、php代码如下。因为thinkcmf中自带了class、phpmailer、php和class、smtp、php的,如果没有现成的,可以去网上下载。
6、发送成功,收件箱查看邮件信息如下:
如何通过php发送邮件?php的mail函数不能用!支持mail的服务器 一般都是linux的 国内的好像不多
自己的电脑安装mail服务器不能往外发的 呵呵 可以自己测试用
现在很多管理系统都是用fsocketopen方式连接邮件服务器并发送邮件的 可以使用163 126的邮箱 网上有一些模型的 就像是好多管理系统后台让填入用户名和密码 就能群发一样 如果你不介意的话 给你转发一个以前我自己改过的可以利用fsocketopen方式群发或者单发email的一共三个文件
MailClass.php 》》》》》》
<?php
class Smtp
{
var $host; //主机
var $port; //端口 一般为25
var $user; //SMTP认证的帐号
var $pass; //认证密码
var $debug = false; //是否显示和服务器会话信息?
var $conn;
var $result_str; //结果
var $in; //客户机发送的命令
var $from; //收件人收到邮件显示的源信箱
var $email; //真实的地址
var $to; //目标信箱
var $subject; //主题
var $body; //内容
var $error;
var $All;
function Smtp($array)
{
$this->host = $array['host'];
$this->port = $array['port'];
$this->email= $array['trueemail'];
$this->from = $array['from'];
$this->user = base64_encode($array['username']);
$this->pass = base64_encode($array['password']);
$this->debug = $array['debug'];
$this->socket = socket_create (AF_INET, SOCK_STREAM, SOL_TCP);
if($this->socket){
$this->result_str = "创建SOCKET:".socket_strerror(socket_last_error());
$this->debug_show($this->result_str);
}
else
die("初始化失败,请检查您的网络连接和参数");
$this->conn = socket_connect($this->socket,$this->host,$this->port);
if($this->conn){
$this->result_str = "创建SOCKET连接:".socket_strerror(socket_last_error());
$this->debug_show($this->result_str);
}
else
die("初始化失败,请检查您的网络连接和参数");
$this->result_str = "服务器应答:<font color=#cc0000>".socket_read ($this->socket, 1024)."</font>";
$this->debug_show($this->result_str);
}
function debug_show($str)
{
if($this->debug)
{
echo $str."<p>\r\n";
}
}
function setmail($to,$subject,$body){
$this->to = $to;
$this->subject = $subject;
$this->body = $body;
$All ="Content-type:text/html;charset=gb2312\r\n"; //邮件的编码方式可以根据自己的需要改
$All .= "From:".$this->from."\r\n";
$All .= "To:".$this->to."\r\n";
$All .= "Subject:".$this->subject."\r\n\r\n";
$All .= $this->body;
$this->All = $All;
}
/**
* 发送邮件部分
* 接收邮箱数组
*/
function send($toarray,$subject,$body)
{
//以下是和服务器会话
$this->in = "EHLO HELO\r\n";
$this->docommand();
$this->in = "AUTH LOGIN\r\n";
$this->docommand();
$this->in = $this->user."\r\n";
$this->docommand();
$this->in = $this->pass."\r\n";
$this->docommand();
foreach( $toarray as $to ) {
$this -> setmail($to,$subject,$body);
$this->in = "RSET\r\n";
$this->docommand();
$this->in = "MAIL FROM:<".$this->email.">\r\n";
$this->docommand();
$this->in = "RCPT TO:<".$this->to.">\r\n";
$this->docommand();
$this->in = "DATA\r\n";
$this->docommand();
$this->in = $this->All."\r\n.\r\n";
$this->docommand();
}
$this->in = "QUIT\r\n";
$this->docommand();
//结束,关闭连接
}
function docommand()
{
socket_write ($this->socket, $this->in, strlen ($this->in));
$this->debug_show("Client Action:".$this->in);
$this->result_str = "Server:<font color=#cc0000>".socket_read ($this->socket, 1024)."</font>";
$this->debug_show($this->result_str);
}
}
?>
MailConfig.inc.php 》》》》》》
<?php
$mailconfig['host'] = "smtp.126.com"; //主机
$mailconfig['port'] = "25"; //端口 一般为25
$mailconfig['trueemail'] = "mhz1600@126.com"; //真实的地址
$mailconfig['username'] = "mhz1600"; //SMTP认证的帐号
$mailconfig['password'] = "*****"; //改成自己的
$mailconfig['debug'] = false; //是否显示和服务器会话信息?
$mailconfig['from'] = "test@test.com"; //显示给用户的发件人
include_once "MailClass.php";
set_time_limit(180);
?>
SendDemo.php 》》》》》》
<?php
include_once "MailConfig.inc.php";
//简单的临时码验证 当前时间(到小时)的验证码
//if( empty($_GET['s']) || $_GET['s'] != md5(date('Y-m-d-H',time())) ) {header("http/1.1 404"); die('');}
//发送email
if( isset($_POST['sendmail']) ) {
if( isset($_POST['from']) ) $mailconfig['from'] = $_POST['from'];
$smtp = new Smtp($mailconfig);
$title = $_POST['title'];
//获取post的email正文
if( get_magic_quotes_gpc() ) $message = $_POST['message'];
else $message = addslashes($_POST['message']);
//从email列表/文档中分离出所有的email地址
$pregstr = "@[a-zA-Z0-9\_][0-9a-zA-Z\.\-\_]+\@[0-aA-Za-z\-\_]+\.[0-9a-zA-Z\.\-\_]+@is";
$temp = array();
preg_match_all($pregstr,$_POST['emails'],$temp);
$toarray = $temp[0];
//var_dump($toarray);
$smtp->send($toarray,$title,$message);
die("操作完成!<A href=".$_SERVER['PHP_SELF']."?s=".md5(date('Y-m-d-H',time())).">继续发送其他</a> <a href=# onclick=window.close()>关闭</a>");
}
else {
if( isset($_POST['emails']) ) {
if( is_array($_POST['emails']) )
$emails = implode("\t",$_POST['emails']);
else
$emails = $_POST['emails'];
}
else $emails = "";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
-->
</style></head>
<body>
<form id="form1" name="form1" method="post" action="">
<table width="600" border="1" align="center" cellpadding="3" cellspacing="0" bordercolordark="#FFFFFF" bordercolorlight="#eeeeee">
<tr>
<td width="66">发件人:</td>
<td width="516"><input name="from" type="text" value="<?php echo $mailconfig['from']; ?>"> 可以直接修改mailconfig文件中的email</td>
</tr>
<tr>
<td>邮件标题:</td>
<td><input name="title" type="text" value="邮件群发测试标题!" size="60"></td>
</tr>
<tr>
<td>收件人:<br></td>
<td><textarea name="emails" cols="60" rows="5"><?php echo $emails; ?></textarea></td>
</tr>
<tr>
<td>邮件正文:<br>
【html】</td>
<td><textarea name="message" cols="60" rows="10">邮件群发测试!谢谢~!</textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="sendmail" value=" 发送邮件 "> </td>
</tr>
</table>
</form>
<?
}
?>
</body>
</html>
使用方式 运行senddemo.php就行 确定本地或者服务器开启了fsocketopen支持 在输入框可以多种格式的的输入很多email 程序用正则表达式匹配出所有的email地址 通过服务器循环对话的方式不断的发送邮件 看看那个demo的流程就明白了
【郑重声明:mailclass修改自网上的模型 其他本人原创,版权不究 欢迎分享】
+---------------------广告-------------------------+
那一天:回忆,让生活更美好
独享人生中那个特别的日子,记录从那一天开始的幸福
期待您的加入,欢迎提供宝贵的意见建议
+--------------------------------------------------+
+--------------------补充--------------------+
发送邮件的服务器(smtp)并不是网址 126发送邮件的服务器是 smtp.126.com 网易163的发送邮件服务器是 smtp.163.com 所有邮箱对于这个都有说明的 还有一个就是能够使用这个功能的好象新注册的邮箱不太好用 因为网易在2006年10对邮箱进行过调整 在此之前注册的都没问题 在这之后注册的好像开通一些其他的功能并且使用了一段时间才行的
smtp服务器的链接可以在命令提示行下测试 就是使用上面的命令:
首先 telnet smtp.126.com 25
因为smtp使用的25端口提供服务的 然后就会看到
220 126.com Anti-spam GT for Coremail System (126com[071018])
输入 EHLO HELO
服务器返回
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME
输入 AUTH LOGIN
服务器返回
334 dXNlcm5hbWU6
然后再输入通过base64加密的用户名和密码 就能通过命令来和服务器对话 包括发送邮件等功能
具体的如果有兴趣更多命令自己查一下
这个php的程序就是模拟这个功能来实现的
如果你用telnet直接连不上的话 说明服务器是错误的 。。
PHP 如何编写用户注册后自动发送邮件到用户邮箱?1、进入自己已有的邮箱,设置帐户,选择“开启POP3/SMTP服务”并保存更改。我就哪我现有设置好的邮箱给大家演示(注:我用的是腾讯企业邮箱,特别注意我画红部分,第一个必要设置就是在邮箱里设置:开启POP/SMTP服务,第二个就是必要获取POP服务器的信息),如图: 2、进入dede后台,系统,系统基本参数,核心设置,配置好邮箱发信的信息.以下是我的配置(说明和如演示图):是否启用smtp方式发送邮件:是.smtp服务器:smtp.exmail.qq.com(注:因为我用的是QQ企业邮箱,所以可以参照上图演示第二个画红部分.POP服务器为:我所填写的:smtp.exmail.qq.com,一般这个POP服务器的填写不是乱填,请一定要参考你使用的邮箱他们所在的POP服务器.)smtp服务器端口:25(一般这个不需要可以去修改改变.默认为:25)SMTP服务器的用户邮箱:webmaster@asqq8.net(这里填写完整的邮箱地址)SMTP服务器的用户帐号:webmaster(这里填写邮箱开头的账户也就是用户名)SMTP服务器的用户密码:123456(密码就不用多说了)3.进入dede后台,系统,系统基本参数,会员设置,在“会员使用权限开通状态(-10邮件验证-1手工审核,0没限制)”填-10如图:教程演示操纵到这里,已经可以收到邮件了
请问一下,PHP配置SMTP怎么弄?PHPMailer的获取:
PHPMailer项目地址:PHPMailer 使用git命令克隆到本地,或直接在该项目页面的右下方点击“ Download ZIP ”即可获取到完整的PHPMailer代码包,再到本地解压即可。
步骤一:使我们的QQ邮箱能够发送邮件
这里怎么说能够发送邮件呢?其实我们的邮箱都是可以发送邮件的,但是要实现在我们的网站中发送邮件,那就要设置一下我们的QQ邮箱了,因为此时我们的网站现在是作为一个第三方客户端存在的。
步骤一:使我们的QQ邮箱能够发送邮件
这里怎么说能够发送邮件呢?其实我们的邮箱都是可以发送邮件的,但是要实现在我们的网站中发送邮件,那就要设置一下我们的QQ邮箱了,因为此时我们的网站现在是作为一个第三方客户端存在的
由于待会我们用到的是SMTP服务器来发送,在这里建议把前面的两项开启了!当你点击开启的时候,它会提示:
当你完成以上步骤之后,就会得到一个授权码,你可以先复制出来,待会我们会用到(开启两项的话会得到两个授权码,用最后的那个授权码!或者点击下面的生成授权码来获取一个新的授权码,一定要最新的!)。
步骤二:使我们的PHP能够使用QQ邮箱发送邮件
PHPMailer需PHP的socket扩展支持,而PHPMailer链接qq域名邮箱时需要ssl加密方式,固php还得openssl的支持,可以查看phpinfo,如下两项均存在则可以使用,其中openssl版本号之类不用管;许多虚拟主机中的php是不支持openssl扩展的,那你可能就悲剧了。
步骤三:将PHPMailer做一定的处理
由于我们下载下来的PHPMailer文件夹里边的文件有很多我们是用不上的,所以我们也没必要浪费这些内存。我们可以对这个文件夹瘦身,在这里我只保存了以下的几个文件:class.phpmailer.php、class.phpmaileroauth.php、class.pop3.php、class.smtp.php、PHPMailerAutoload.php。
/*发送邮件方法
*@param $to:接收者 $title:标题 $content:邮件内容
*@return bool true:发送成功 false:发送失败
*/function sendMail($to,$title,$content){ //引入PHPMailer的核心文件 使用require_once包含避免出现PHPMailer类重复定义的警告
require_once("phpmailer/class.phpmailer.php");
require_once("phpmailer/class.smtp.php"); //实例化PHPMailer核心类
$mail = new PHPMailer(); //是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉即可 默认关闭debug调试模式
$mail->SMTPDebug = 1; //使用smtp鉴权方式发送邮件
$mail->isSMTP(); //smtp需要鉴权 这个必须是true
$mail->SMTPAuth=true; //链接qq域名邮箱的服务器地址
$mail->Host = 'smtp.qq.com'; //设置使用ssl加密方式登录鉴权
$mail->SMTPSecure = 'ssl'; //设置ssl连接smtp服务器的远程服务器端口号,以前的默认是25,但是现在新的好像已经不可用了 可选465或587
$mail->Port = 465; //设置smtp的helo消息头 这个可有可无 内容任意
// $mail->Helo = 'Hello smtp.qq.com Server';
//设置发件人的主机域 可有可无 默认为localhost 内容任意,建议使用你的域名
$mail->Hostname = ''; //设置发送的邮件的编码 可选GB2312 我喜欢utf-8 据说utf8在某些客户端收信下会乱码
$mail->CharSet = 'UTF-8'; //设置发件人姓名(昵称) 任意内容,显示在收件人邮件的发件人邮箱地址前的发件人姓名
$mail->FromName = 'LSGO实验室'; //smtp登录的账号 这里填入字符串格式的qq号即可
$mail->Username ='12345678@qq.com'; //smtp登录的密码 使用生成的授权码(就刚才叫你保存的最新的授权码)
$mail->Password = 'sqyofzbqlfkntbncl'; //设置发件人邮箱地址 这里填入上述提到的“发件人邮箱”
$mail->From = '12345678@qq.com'; //邮件正文是否为html编码 注意此处是一个方法 不再是属性 true或false
$mail->isHTML(true);
//设置收件人邮箱地址 该方法有两个参数 第一个参数为收件人邮箱地址 第二参数为给该地址设置的昵称 不同的邮箱系统会自动进行处理变动 这里第二个参数的意义不大
$mail->addAddress($to,'lsgo在线通知'); //添加多个收件人 则多次调用方法即可
// $mail->addAddress('xxx@163.com','lsgo在线通知');
//添加该邮件的主题
$mail->Subject = $title; //添加邮件正文 上方将isHTML设置成了true,则可以是完整的html字符串 如:使用file_get_contents函数读取本地的html文件
$mail->Body = $content; //为该邮件添加附件 该方法也有两个参数 第一个参数为附件存放的目录(相对目录、或绝对目录均可) 第二参数为在邮件附件中该附件的名称
// $mail->addAttachment('./d.jpg','mm.jpg');
//同样该方法可以多次调用 上传多个附件
// $mail->addAttachment('./Jlib-1.1.0.js','Jlib.js');
$status = $mail->send(); //简单的判断与提示信息
if($status) { return true;
}else{ return false;
}
}
<?phprequire_once("./functions.php");$flag = sendMail('456789@qq.com','lsgo在线通知','恭喜你成功加入LSGO实验室,开启你的学习之旅吧!');if($flag){ echo "发送邮件成功!";
}else{ echo "发送邮件失败!";
}?>
关于网易smtpphp的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于网易smtpphp 网易smtp服务器怎么填写的详细内容...