当前位置:首页 » 编程语言 » php发送邮件函数

php发送邮件函数

发布时间: 2023-08-07 04:02:50

Ⅰ 如何用php里的IMAP函数,实现邮件的发送,希

//以腾讯企业邮箱做了测试
$mailServer="imap.exmail.qq.com";//IMAP主机
$mailLink="{{$mailServer}:143}INBOX";//imagp连接地址:不同主机地址不同
$mailUser='***';//邮箱用户名
$mailPass='***';//邮箱密码
$mbox=imap_open($mailLink,$mailUser,$mailPass);//开启信箱imap_open
$totalrows=imap_num_msg($mbox);//取得信件数
for($i=1;$i<$totalrows;$i++){
$headers=imap_fetchheader($mbox,$i);//获取信件标头
$headArr=matchMailHead($headers);//匹配信件标头
$mailBody=imap_fetchbody($mbox,$i,1);//获取信件正文
}
/**
*
*匹配提取信件头部信息
*@paramString$str
*/
functionmatchMailHead($str){
$headList=array();
$headArr=array(
'from',
'to',
'date',
'subject'
);
foreach($headArras$key){
if(preg_match('/'.$key.':(.*?)[ ]/is',$str,$m)){
$match=trim($m[1]);
$headList[$key]=$key=='date'?date('Y-m-dH:i:s',strtotime($match)):$match;
}
}
return$headList;
}

Ⅱ php中自动发送邮件的函数

全部代码如下:

PhpMailer.php
代码如下:
<?php
/************************************************
* 有身份验证的电子邮件发送类(PHP)
* 使用本类发送邮件需要一个SMTP服务器地址以及一个合法帐号
* 如163的SMTP地址为:smtp.163.split.netease.com
* 合法帐号可以通过随意注册一个免费信箱来获得。
* 改编 一起PHP技术联盟 www.17php.com [email protected]
* 本类的SMTP协议实现部分借鉴了其他开发者的成果,一并致谢。
* 2007.11 欢迎使用
***********************************************/
class PhpMailer{
var $smtpHost;
var $smtpUser;
var $smtpPass;
var $mailFrom;
/* 邮件正文的格式,默认支持HTML代码
* 可选项 plain :文本格式
* html :HTML格式
*/
var $contentType = "html";
var $errMsg = '';
/**
* 3参数构造器
* @param String $host SMTP服务器
* @param String $user 帐号名
* @param String $pass 密码
* 无返回值
*/
function __construct($host,$user,$pass){
$this->smtpHost = $host;
$this->smtpUser = $user;
$this->smtpPass = $pass;
$this->mailFrom = $this->smtpUser;
}
/**
* 发送邮件
* @param String $addr 收件人的E-mail地址
* @param String $fromName 显示的发件人姓名
* @param String $title 邮件标题
* @param String $content 邮件正文
* 返回 布尔型:成功返回true,否则返回false
*/
function send($addr,$fromName,$title,$content){
$headers = "Content-Type: text/".$this->contentType."; charset=\"gb2312\"
Content-Transfer-Encoding: base64";
$lb="
";
$hdr = explode($lb,$headers);
if($content){
$bdy = preg_replace("/^./","..",explode($lb,$content));
}
$smtp = array(
array("EHLO hello".$lb,"220,250","EHLO error: "),
array("AUTH LOGIN".$lb,"334","AUTH error:"),
array(base64_encode($this->smtpUser).$lb,"334","AUTHENTIFICATION error : "),
array(base64_encode($this->smtpPass).$lb,"235","AUTHENTIFICATION error : ")
);
$smtp[] = array("MAIL FROM: <".$this->mailFrom.">".$lb,"250","MAIL FROM error: ");
$smtp[] = array("RCPT TO: <".$addr.">".$lb,"250","RCPT TO error: ");
$smtp[] = array("DATA".$lb,"354","DATA error: ");
$smtp[] = array("From: ".$fromName.$lb,"","");
$smtp[] = array("To: ".$addr.$lb,"","");
$smtp[] = array("Subject: ".$title.$lb,"","");
foreach($hdr as $h) {
$smtp[] = array($h.$lb,"","");
}
$smtp[] = array($lb,"","");
if($bdy) {
foreach($bdy as $b) {
$smtp[] = array(base64_encode($b.$lb).$lb,"","");
}
}
$smtp[] = array(".".$lb,"250","DATA(end)error: ");
$smtp[] = array("QUIT".$lb,"221","QUIT error: ");
//打开SOCKET
$fp = @fsockopen($this->smtpHost, 25);
if (!$fp) $this->errMsg = "<b>错误:</b> 无法连接到 ".$this->smtpHost."";
while($result = @fgets($fp, 1024)){
if(substr($result,3,1) == " ") { break; }
}
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))){
$this->errMsg.=$req[2].$result."";
}
}
}
@fclose($fp);
if($this->errMsg ==''){
return true;
}else{
return false;
}
}
}
?>

这个类文件对邮件发送操作进行了封装,使用时不需要做任何更改。只需要在需要发送邮件的程序中包含即可。下面是一个使用的例子:

example.php
代码如下:

<?php
/******************************************
* PhpMailer类使用方法演示程序
******************************************/
require_once('PhpMailer.php');
$test =new PhpMailer("smtp.xxx.com","[email protected]","yourpassword");
$send =$test->send("[email protected]","一起PHP","邮件标题","邮件内容(支持HTML)");

if($send){
echo "发送成功。";
}else{
echo "发送失败。错误信息:".$test->errMsg;
}
?>

注释:

$test = new PhpMailer(参数1,参数2,参数3)

创建类对象。三个参数为必填。分别表示 SMTP服务器地址、用户名、密码(用户名为完整的邮件地址格式)。
如使用163的SMTP: smtp.163.split.netease.com 用户名[email protected] 密码 123456。

$send = $test->send(参数1,参数2,参数3,参数4)

调用 send()方法发送邮件,四个参数为必填。分别表示收信人地址、发信人姓名、邮件标题、邮件正文。
$send接收返回结果。发送成功返回true,失败返回false。并将失败原因存放在errMsg变量中。

Ⅲ php mail函数到底怎么配置

你要用mail就得用smtp服务软件,然后配送smtp的用户名和密码,端口号,然后在php mail的配置文件里配置一下SMTP的地址,用户名密码端口号等。

Ⅳ php怎么通过邮件的方式发送一封URL带参数的地址的邮件

思想:

通过str_replace来替换掉参数的位置。

//设$content为邮件内容
$content=<<<EOF
<palign="center"><ahref='https://www.m78.co/get.php?code=$code'>Clickmetogetyoghurt!</a><br>
</p>
EOF;
//设$str为被替换的字符串
//设$code为替换字符串,现在要替换掉$content中的"$code"为真正的变量$code。
$str='$code';
$code=$_GET['code'];
$content=str_replace($str,$code,$content);
//最终就可以实现发送一封URL带参数邮件的效果了

总结:

此种情况的确比较特殊,但我们平常还是应该多补习一下PHP的函数,在实战中发挥。

关于我:

  • MarikoChiba,星云茶馆的站长,欢迎各位的光临。

热点内容
phpsocket教程 发布:2025-02-06 17:42:13 浏览:421
mysql解压缩版安装 发布:2025-02-06 17:26:33 浏览:179
phpgd图片 发布:2025-02-06 17:24:34 浏览:206
php代码整理 发布:2025-02-06 17:24:31 浏览:477
java可执行文件 发布:2025-02-06 17:18:59 浏览:249
卫士相当于现在什么配置 发布:2025-02-06 17:05:04 浏览:409
项目编译慢 发布:2025-02-06 16:53:48 浏览:382
python处理excel文件 发布:2025-02-06 16:36:09 浏览:443
算法相对定位 发布:2025-02-06 16:32:42 浏览:728
java程序的编译和执行 发布:2025-02-06 16:21:45 浏览:420