PHP发送邮件,php发送邮件造成代码异常

http://www.itjxue.com  2023-01-24 00:48  来源:未知  点击次数: 

php 如何通过smtp发送图片邮件?

方法很多。

方法1:可以弄成html,找个服务器,邮件发送时发html就是

方法2:图做成邮件附件

方法3:type= "image/jpeg"修改邮件文件属性发送

如何正确运用PHP发送邮件函数

PHP发送邮件函数的应用代码示例:

#echo?send_mail($_POST["email"],$tosubject,$_POST["errortext"]);??

echo?send_mail('someone@126.com','only?a?test?mail?for?test?php?mail?function','一封垃圾邮件');??

echo?time();??

?

function?send_mail($to,?$subject?=?'No?subject',?$body)?{??

$loc_host?=?"mail.server";?//发信计算机名,可随意??

$smtp_acc?=?"smp@163.com";?//Smtp认证的用户名??

$smtp_pass="pwdpwd";?//Smtp认证的密码,一般等同pop3密码??

$smtp_host="smtp.163.com";?//SMTP服务器地址,类似?smtp.tom.com??

$from="smp@163.com";?//发信人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","HELO?error:?"),??

//2、发送Auth?Login,期待返回334??

array("AUTH?LOGIN".$lb,"334","AUTH?error:"),??

//3、发送经过Base64编码的用户名,期待返回334??

array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION?error?:?"),??

//4、发送经过Base64编码的密码,期待返回235??

array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION?error?:?"));??

//5、发送Mail?From,期待返回250??

$smtp[]?=?array("MAIL?FROM:?".$from."".$lb,"250","MAIL?FROM?error:?");??

//6、发送Rcpt?To。期待返回250??

$smtp[]?=?array("RCPT?TO:?".$to."".$lb,"250","RCPT?TO?error:?");??

//7、发送DATA,期待返回354??

$smtp[]?=?array("DATA".$lb,"354","DATA?error:?");??

//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($hdr?as?$h)?{$smtp[]?=?array($h.$lb,"","");}??

//8.4、发送一个空行,结束Header发送??

$smtp[]?=?array($lb,"","");??

//8.5、发送信件主体??

if($bdy)?{foreach($bdy?as?$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","QUIT?error:?");??

?

//打开smtp服务器端口??

$fp?=?@fsockopen($smtp_host,?25);??

if?(!$fp)?echo?"bError:/b?Cannot?conect?to?".$smtp_host."br";??

while($result?=?@fgets($fp,?1024)){if(substr($result,3,1)?==?"?")?{?break;?}}??

?

$result_str="";??

//发送smtp数组中的命令/数据??

foreach($smtp?as?$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发送邮件函数的运用。

PHP邮件发送

首先去下载一个phpmailer的压缩包(随便一搜就可以找的到)

然后解压

代码如下:

?php

require("phpmailer/class.phpmailer.php"); //引入文件(把刚才解压的那些文件放到对应的路径就可以了)

$mail = new PHPMailer(); //实例化

$mail-IsSMTP(); // 启用SMTP

$mail-Host="smtp.126.com"; //smtp服务器的名称(这里以126邮箱为例)

$mail-SMTPAuth = true; //启用smtp认证

$mail-Username = "******@126.com"; //你的邮箱名

$mail-Password = "*****"; //邮箱密码

$mail-From = "****@126.com"; //发件人地址(也就是你的邮箱地址)

$mail-FromName = "****"; //发件人姓名

$mail-AddAddress("收件人地址","收件人姓名"); //添加收件人

$mail-AddReplyTo("*****@126.com", "****"); //回复地址(可填可不填)

$mail-WordWrap = 50; //设置每行字符长度

$mail-AddAttachment("images/01.jpg", "manu.jpg"); // 添加附件,并指定名称

$mail-IsHTML(true); // 是否HTML格式邮件

$mail-CharSet="utf-8"; //设置邮件编码

$mail-Subject = "****"; //邮件主题

$mail-Body = "******"; //邮件内容

$mail-AltBody = "This is the body in plain text for non-HTML mail clients"; //邮件正文不支持HTML的备用显示

if(!$mail-Send())

{

echo "Message could not be sent. p";

echo "Mailer Error: " . $mail-ErrorInfo;

exit();

} else {

echo "Message has been sent";

}

?

php发邮件需要什么东西

PHP mail() 函数

PHP mail() 函数用于从脚本中发送电子邮件。

语法

mail(to,subject,message,headers,parameters)

参数 描述

to 必需。规定 email 接收者。

subject 必需。规定 email 的主题。注释:该参数不能包含任何新行字符。

message 必需。定义要发送的消息。应使用 LF (\n) 来分隔各行。

headers

可选。规定附加的标题,比如 From、Cc 以及 Bcc。

应当使用 CRLF (\r\n) 分隔附加的标题。

parameters 可选。对邮件发送程序规定额外的参数。

注释:PHP 需要一个已安装且正在运行的邮件系统,以便使邮件函数可用。所用的程序通过在 php.ini 文件中的配置设置进行定义。请在我们的 PHP Mail 参考手册阅读更多内容。

PHP 简易 E-Mail

通过 PHP 发送电子邮件的最简单的方式是发送一封文本 email。

(责任编辑:IT教学网)

更多

推荐网页背景文章