php邮箱发送
A. php 邮件发送问题 , 为什么发送邮箱和密码只能用固定的,换一个就不行了
phpmailer类会有很多的报错信息啊,或者都可以打印错误日志,看看就知道,如果第一次的常识发送成功,第二次那你就改看看新的账号,密码所在的邮件服务器提供商,stmp的地址了,还有在邮箱的设置里面打开stmp的功能,希望可以帮到你
B. 怎么用php的mail函数发邮件
functionsendMail($to,$title,$content){
Vendor('PHPMailer.PHPMailerAutoload');
$mail=newPHPMailer();//实例化
$mail->IsSMTP();//启用SMTP
$mail->Host=C('MAIL_HOST');//smtp服务器的名称(这里以QQ邮箱为例)
$mail->SMTPAuth=C('MAIL_SMTPAUTH');//启用smtp认证
$mail->Username=C('MAIL_USERNAME');//你的邮箱名
$mail->Password=C('MAIL_PASSWORD');//邮箱密码
$mail->From=C('MAIL_FROM');//发件人地址(也就是你的邮箱地址)
$mail->FromName=C('MAIL_FROMNAME');//发件人姓名
$mail->AddAddress($to,"尊敬的客户");
$mail->WordWrap=50;//设置每行字符长度
$mail->IsHTML(C('MAIL_ISHTML'));//是否HTML格式邮件
$mail->CharSet=C('MAIL_CHARSET');//设置邮件编码
$mail->Subject=$title;//邮件主题
$mail->Body=$content;//邮件内容
$mail->AltBody="";//邮件正文不支持HTML的备用显示
$relt=$mail->Send();
if(!$relt){
writeLog('发送邮件错误,错误信息:'.$mail->ErrorInfo,1,'发送邮箱失败');
}
return($relt);
}
这个是thinkphp版本的。
C. 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服务器的用户邮箱:[email protected](这里填写完整的邮箱地址)SMTP服务器的用户帐号:webmaster(这里填写邮箱开头的账户也就是用户名)SMTP服务器的用户密码:123456(密码就不用多说了)3.进入dede后台,系统,系统基本参数,会员设置,在“会员使用权限开通状态(-10邮件验证-1手工审核,0没限制)”填-10如图:教程演示操纵到这里,已经可以收到邮件了
D. 怎么利用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
<span style="font-size:14px"><?php
$to = "[email protected]";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "[email protected]";
$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
<span style="font-size:14px"><html>
<body>
<h3>phpmailer 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
<?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 = "[email protected]"; // SMTP server username
$mail->Password = "000000000000"; // SMTP server password
//$mail->IsSendmail(); // tell the class to use Sendmail
$mail->AddReplyTo("[email protected]","han qing");
$mail->From = "[email protected]";
$mail->FromName = "han qing";
//$to = "[email protected]";
$mail->AddAddress($to);
$mail->Subject =$mail->Subject = "=?utf-8?B?" . base64_encode("First PHPMailer Message") . "?=";
$mail->Body = "<h1>phpmailer演示</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
$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();
}
?>
E. PHP邮件发送
可以的,PHP直接连接SMTP服务器,进行登录和发送邮件。不过不可能简单哦,相当于编写一个OUTLOOK的功能,不可能很简单,可以参见这篇文章:http://www.chinaz.com/Program/PHP/041050242007.html
F. 如何正确运用PHP发送邮件函数
PHP发送邮件函数的应用代码示例:
#echosend_mail($_POST["email"],$tosubject,$_POST["errortext"]);
echosend_mail('[email protected]','','一封垃圾邮件');
echotime();
functionsend_mail($to,$subject='Nosubject',$body){
$loc_host="mail.server";//发信计算机名,可随意
$smtp_acc="[email protected]";//Smtp认证的用户名
$smtp_pass="pwdpwd";//Smtp认证的密码,一般等同pop3密码
$smtp_host="smtp.163.com";//SMTP服务器地址,类似smtp.tom.com
$from="[email protected]";//发信人Email地址,你的发信信箱地址
$deliver=$smtp_acc;//回复到指定邮箱
$headers="Content-Type:text/plain;charset="gb2312"rnContent-Transfer-Encoding:base64";
$lb="rn";//linebreak
$hdr=explode($lb,$headers);//解析后的hdr
if($body){$bdy=preg_replace("/^./","..",explode($lb,$body));}//解析后的Body
$smtp=array(
//1、EHLO,期待返回220或者250
array("EHLO".$loc_host.$lb,"220,250","HELOerror:"),
//2、发送AuthLogin,期待返回334
array("AUTHLOGIN".$lb,"334","AUTHerror:"),
//3、发送经过Base64编码的用户名,期待返回334
array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATIONerror:"),
//4、发送经过Base64编码的密码,期待返回235
array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATIONerror:"));
//5、发送MailFrom,期待返回250
$smtp[]=array("MAILFROM:<".$from.">".$lb,"250","MAILFROMerror:");
//6、发送RcptTo。期待返回250
$smtp[]=array("RCPTTO:<".$to.">".$lb,"250","RCPTTOerror:");
//7、发送DATA,期待返回354
$smtp[]=array("DATA".$lb,"354","DATAerror:");
//8.0、发送From
$smtp[]=array("From:".$deliver.$lb,"","");
//8.2、发送To
$smtp[]=array("To:".$to.$lb,"","");
//8.1、发送标题
$smtp[]=array("Subject:".$subject.$lb,"","");
//8.3、发送其他Header内容
foreach($hdras$h){$smtp[]=array($h.$lb,"","");}
//8.4、发送一个空行,结束Header发送
$smtp[]=array($lb,"","");
//8.5、发送信件主体
if($bdy){foreach($bdyas$b){$smtp[]=array(base64_encode($b.$lb).$lb,"","");}}
//9、发送“.”表示信件结束,期待返回250
$smtp[]=array(".".$lb,"250","DATA(end)error:");
//10、发送Quit,退出,期待返回221
$smtp[]=array("QUIT".$lb,"221","QUITerror:");
//打开smtp服务器端口
$fp=@fsockopen($smtp_host,25);
if(!$fp)echo"<b>Error:</b>Cannotconectto".$smtp_host."<br>";
while($result=@fgets($fp,1024)){if(substr($result,3,1)==""){break;}}
$result_str="";
//发送smtp数组中的命令/数据
foreach($smtpas$req){
//发送信息
@fputs($fp,$req[0]);
//如果需要接收服务器返回信息,则
if($req[1]){
//接收信息
while($result=@fgets($fp,1024)){
if(substr($result,3,1)==""){break;}
};
if(!strstr($req[1],substr($result,0,3))){
$result_str.=$req[2].$result."<br>";
}
}
}
//关闭连接
@fclose($fp);
return$result_str;
}
希望上面这段代码示例能让大家充分掌握PHP发送邮件函数的运用。
G. php怎么写邮件发送
Outlook Express 设置
(提示:如果8、9、10没有设定,会发不出邮件,只能接收)
以中文版 Outlook Express 6 为例,请按以下步骤,手动配置你的客户端:
1、打开 Outlook Express 后,单击窗口中的“工具”菜单,选择“帐户”;
2、点击“邮件”标签,点击右侧的“添加”按钮,在弹出的菜单中选择“邮件”;
3、弹出的对话框中,根据提示,输入你的“显示名”, 然后点击“下一步”;
4、输入你的电子邮件地址,点击“下一步”
5、输入你邮箱的的 POP 和 SMTP 服务器地址:(一般在你的邮箱页面或帮助中有,以下以126邮箱为例说明)
pop: pop.126.com
smtp: smtp.126.com
再点击“下一步”;
6、输入你的帐号及密码(此帐号为登录此邮箱时用的帐号,仅输入 @ 前面的部分),再点击“下一步”;
7、单击“完成”按钮保存你的设置;
8、设置 SMTP 服务器身份验证:在“邮件”标签中,双击刚才添加的帐号,弹出此帐号的属性框;
9、请点击“服务器”标签,然后在“发送邮件服务器”处,选中“我的服务器要求身份验证”选项,并点击右边“设置”标签,选中“使用与接收邮件服务器相同的设置”。
10、点击“确定”,然后“关闭”帐户框。
现在你已设置成功,点击主窗口中的“发送接收”按钮即可进行邮件收发。
(提示:如果8、9、10没有设定,会发不出邮件,只能接收)
H. php如何发送邮件
<?php
//定义边界线
$boundary = uniqid( "" );
//生成邮件头
$header = "From: $from\nContent-type: multipart/mixed;
boundary=\"$boundary\"\nX-Mailer:PHP\nX-Priority:3";
//获取附件文件的MIME类型
$mimetype = mime_content_type('test.zip')
//获取附件文件的名字
$attach = 'test.zip'
//对附件文件进行编码和切分
$fp = fopen($attach, "r");
$content = fread($fp, filesize($attach));
$content = chunk_split( base64_encode($content) );
//生成邮件主体
$body ="
--$boundary
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: 8bit
$message
--$boundary
Content-Type: $mimeType; name=$filename
Content-Disposition: attachment; filename=$filename
Content-Transfer-Encoding: base64
$content
--$boundary--";
//发送邮件
mail( $to, $subject, $body, $header );
?>
I. php发邮件
php的默认发送邮件的功能并不是很好,推荐你使用phpmailer,学起来并不复杂。
但一般在本地环境可能不好用,你需要上传到你的空间才可以使用。
具体的使用方法你可以参考:http://tech.ixooi.com/65/phpmailer-sendmail.html
J. php如何发送邮件
你好,用这个邮件类,需要在调用时,填写一个smtp服务器和你的用户名密码。
<?php
set_time_limit(600);
/*
* 邮件发送类
*/
class smail {
//您的SMTP 服务器供应商,可以是域名或IP地址
var $smtp = "";
//SMTP需要要身份验证设值为 1 不需要身份验证值为 0,现在大多数的SMTP服务商都要验证,如不清楚请与你的smtp 服务商联系。
var $check = 1;
//您的email帐号名称
var $username = "";
//您的email密码
var $password = "";
//此email 必需是发信服务器上的email
var $s_from = "";
/*
* 功能:发信初始化设置
* $from 你的发信服务器上的邮箱
* $password 你的邮箱密码
* $smtp 您的SMTP 服务器供应商,可以是域名或IP地址
* $check SMTP需要要身份验证设值为 1 不需要身份验证值为 0,现在大多数的SMTP服务商都要验证
*/
function smail ( $from, $password, $smtp, $check = 1 ) {
if( preg_match("/^[^\d\-_][\w\-]*[^\-_]@[^\-][a-zA-Z\d\-]+[^\-](\.[^\-][a-zA-Z\d\-]*[^\-])*\.[a-zA-Z]{2,3}/", $from ) ) {
$this->username = substr( $from, 0, strpos( $from , "@" ) );
$this->password = $password;
$this->smtp = $smtp ? $smtp : $this->smtp;
$this->check = $check;
$this->s_from = $from;
}
}
/*
* 功能:发送邮件
* $to 目标邮箱
* $from 来源邮箱
* $subject 邮件标题
* $message 邮件内容
*/
function send ( $to, $from, $subject, $message ) {
//连接服务器
$fp = fsockopen ( $this->smtp, 25, $errno, $errstr, 60);
if (!$fp ) return "联接服务器失败".__LINE__;
set_socket_blocking($fp, true );
$lastmessage=fgets($fp,512);
if ( substr($lastmessage,0,3) != 220 ) return "错误信息1:$lastmessage".__LINE__;
//HELO
$yourname = "YOURNAME";
if($this->check == "1") $lastact="EHLO ".$yourname."\r\n";
else $lastact="HELO ".$yourname."\r\n";
fputs($fp, $lastact);
$lastmessage == fgets($fp,512);
if (substr($lastmessage,0,3) != 220 ) return "错误信息2:$lastmessage".__LINE__;
while (true) {
$lastmessage = fgets($fp,512);
if ( (substr($lastmessage,3,1) != "-") or (empty($lastmessage)) )
break;
}
//身份验证
if ($this->check=="1") {
//验证开始
$lastact="AUTH LOGIN"."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "错误信息3:$lastmessage".__LINE__;
//用户姓名
$lastact=base64_encode($this->username)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 334) return "错误信息4:$lastmessage".__LINE__;
//用户密码
$lastact=base64_encode($this->password)."\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != "235") return "错误信息5:$lastmessage".__LINE__;
}
//FROM:
$lastact="MAIL FROM: <". $this->s_from . ">\r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "错误信息6:$lastmessage".__LINE__;
//TO:
$lastact="RCPT TO: <". $to ."> \r\n";
fputs( $fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 250) return "错误信息7:$lastmessage".__LINE__;
//DATA
$lastact="DATA\r\n";
fputs($fp, $lastact);
$lastmessage = fgets ($fp,512);
if (substr($lastmessage,0,3) != 354) return "错误信息8:$lastmessage".__LINE__;
//处理Subject头
$head="Subject: $subject\r\n";
$message = $head."\r\n".$message;
//处理From头
$head="From: $from\r\n";
$message = $head.$message;
//处理To头
$head="To: $to\r\n";
$message = $head.$message;
//加上结束串
$message .= "\r\n.\r\n";
//发送信息
fputs($fp, $message);
$lastact="QUIT\r\n";
fputs($fp,$lastace);
fclose($fp);
return 0;
}
}
// 发送示例
// 只需要把这部分改成你的信息就行
$sm = new smail( "用户名", "密码", "发件smtp服务器" );
$end = $sm->send( "收件人", "发件人(可以伪造哦)", "标题", "内容" );
if( $end ) echo $end;
else echo "发送成功!$x";
?>