网上找发送email的函数,基本没找到,有发邮件的类,自己试着写了一个smtp的,发送邮件倒是可以了,不过还不知道怎么发附件,先记录一下,再研究,慢慢更新。
测试了163的smtp,可以发送。
function sendEmail($host, $port=25, $check=0, $username='', $password='', $fromemail, $toemail, $fromName=''
, $toName='', $subject='', $message='', $additional='', $charset='utf-8')
{
$CRLF = "\r\n";
$fromName = trim($fromName) == '' ? $fromemail : $fromName;
$toName = trim($toName) == '' ? $toemail : $toName;
$send_from = "=?$charset?B?".base64_encode($fromName)."?= <$fromemail>";
$send_to = "=?$charset?B?".base64_encode($toName)."?= <$toemail>";
$send_subject = "=?$charset?B?".base64_encode(str_replace(array("\r","\n"), array('',' '),$subject)).'?=';
$send_message = chunk_split(base64_encode(str_replace("\r\n.", " \r\n..", str_replace("\n", "\r\n",
str_replace("\r", "\n", str_replace("\r\n", "\n", str_replace("\n\r", "\r", $message)))))));
$additional = "To: {$send_to}{$CRLF}From: {$send_from}{$CRLF}MIME-Version: 1.0{$CRLF}Content-type: text/html; charset=$charset{$CRLF}{$additional}Content-Transfer-Encoding: base64{$CRLF}";
$fp = fsockopen($host, $port, $errno, $errstr);
if (!$fp)
{
return 'SCE'; //smtp connect error
}
if (strncmp(fgets($fp, 512), '220', 3) != 0)
{
return 'SCE'; //smtp connect error
}
fwrite($fp, "EHLO $fromName{$CRLF}");
if ($check)
{
while ($rt=strtolower(fgets($fp, 512)))
{
if (strpos($rt, "-") !== 3 || empty($rt))
{
break;
}
elseif (strpos($rt, "2") !== 0)
{
return "AE";//auth error
}
}
fwrite($fp, "AUTH LOGIN{$CRLF}");
if (strncmp(fgets($fp, 512), '334', 3) != 0)
{
return "ALE";//auth login error
}
fwrite($fp, base64_encode($username).$CRLF);
if (strncmp(fgets($fp,512), '334', 3) != 0)
{
return "ALUE";//auth login username error
}
fwrite($fp, base64_encode($password).$CRLF);
if (strncmp(fgets($fp, 512), '235', 3) != 0)
{
return 'ALPE';//auth login password error
}
}
$from = preg_replace("/.*\<(.+?)\>.*/", "\\1", $fromemail);
fwrite($fp, "MAIL FROM: <$from>$CRLF");
if (strncmp(fgets($fp, 512), '250', 3) != 0)
{
return 'EFE'; //email from error
}
fwrite($fp, "RCPT TO: <$toemail>$CRLF");
if (strncmp(fgets($fp,512), '250', 3) != 0)
{
return 'ETE';//email toemail error
}
fwrite($fp, "DATA$CRLF");
if (strncmp(fgets($fp, 512), '354', 3) != 0)
{
return 'EDE';//email data error
}
$msg = "Date: ".Date("r").$CRLF;
$msg .= "Subject: $send_subject".$CRLF;
$msg .= $additional.$CRLF;
$msg .= $send_message.$CRLF.".".$CRLF;
fwrite($fp, $msg);
$lastmessage = fgets($fp, 512);
if (substr($lastmessage, 0, 3) != 250)
{
return 'ESE';//email send error
}
fwrite($fp, "QUIT\r\n");
fclose($fp);
return 'OK';
}
分享到:
相关推荐
源代码介绍:PHPMailer是一个用于发送电子邮件的PHP函数包。它提供的功能包括: *.在发送邮时指定多个收件人,抄送地址,暗送地址和回复地址 *.支持多种邮件编码包括:8bit,base64,binary和quoted-printable *....
php本身提供了一个邮件发送函数mail,可以在程序中直接发送电子邮件,不过该函数要求服务器支持sendmail或者必须设置一台不需要中继的邮件发送服务器,但现在要找到一台不需要身份验证的邮件发送中继几乎不可能,...
这个控件好好用 第一,需要下载PHPMailer文件包phpmailer. http://phpmailer.sourceforge.net/ 第二,确认你的服务器系统已经支持socket ,通过phpinfo();查看是否支持sockets(socket 是属于PHP扩展部分),如果显现为...
PHPMailer,是一个为了实现PHP平台上发送电子邮件(Email)的优秀国外PHP类库。它最主要的两个特点:发送HTML内容格式的Email和发送带附件的Email。PHPMailer基本上能够实现所有邮箱本身所包含的邮件发送功能,包括...
php本身提供了一个邮件发送函数mail,可以在程序中直接发送电子邮件,不过该函数要求服务器支持sendmail或者必须设置一台不需要中继的邮件发送服务器,但现在要找到一台不需要身份验证的邮件发送中继几乎不可能,...
php本身提供了一个邮件发送函数mail,可以在程序中直接发送电子邮件,不过该函数要求服务器支持sendmail或者必须设置一台不需要中继的邮件发送服务器,但现在要找到一台不需要身份验证的邮件发送中继几乎不可能,...
php本身提供了一个邮件发送函数mail,可以在程序中直接发送电子邮件,不过该函数要求服务器支持sendmail或者必须设置一台不需要中继的邮件发送服务器,但现在要找到一台不需要身份验证的邮件发送中继几乎不可能,...
1 使用默认mail函数 2 通过SOCKET连接SMTP服务器发送(支持 ESMTP 验证) 3 通过调用CDONTS.NewMail(虚拟SMTP发信)组件发送Email(仅 win32 下有效) 4 通过调用jmail 组件发送Email(仅 win32 下有效...
查看电子邮件使用 SMTP 检查电子邮件地址是否存在的类用法很简单,查看test.php 函数 check_email($email) 将模拟使用 SMTP 发送电子邮件,但实际上不会发送电子邮件。 它的用途是验证存在以避免输入错误和垃圾邮件...
PHPMailer邮件类的使用 第一步:需要下载PHPMailer文件包phpmailer-1.73.tar.gz 来自开源社区: http://phpmailer.sourceforge.net/ 第二步:确认你的服务器系统已经支持socket 如下图,通过phpinfo();查看是否...
复制代码 代码如下:/* 使用qmail发送邮件函数 */ function send_check_mail($email, $subject,$uid,$buffer) { $command = “/var/qmail/bin/qmail-inject “.$email; //qmail程式地址,$email是要发送的地址 $...
建立SOCKET会话,根据SMTP协议发送邮件 可在无GD库的空间中正常运行的验证码功能 运用大量PHP和JavaScript函数绘制网页特效 smtp协议_应答码说明: '* 500 格式错误,命令不可识别(此错误也包括命令行过长) '* ...
源码+说明 添加功能: 支持心情图片插入 支持输入内容时插入图片 用户基本信息以及留言内容...建立SOCKET会话,根据SMTP协议发送邮件 可在无GD库的空间中正常运行的验证码功能 运用大量PHP和JavaScript函数绘制网页特效
2.调用Application/Common/function.php的sendEmail函数/**author:10xjzheng发生邮件,服务器用smtp.163.com,可以在$mail->Host改配置@param companyEmail string 公司邮箱/发生人邮箱@param password string 邮箱...
以前的email.class.php不兼容php5.3以上(其实也就有两三个函数换了,改了就好了),现在找到这个别人修改好的,好东西多共享.
文件说明: 8.php 八年文件管理器 主文件 独立上传就可以使用了 class.phpmailer.php class.smtp.php 这两个是 smtp类 上传这两个文件就可以 在不支持 email函数的情况下 发送邮件 把这两个文件上传到和 8.php 同一个...
最新的email.class.php代码,其他网站下载的代码有的函数和用法都过时了,下载后还需要大量修改,我的这个代码是我修改过的,可以直接拿来使用
该类仅使用WordPress函数wp_mail()发送电子邮件,这意味着您所有现有的SMTP设置将继续运行,而无需其他配置或设置。简介:$ email = WP_Mail :: init () -> to ( 'john.doe@gmail.com' ) -> subject ( 'WP_Mail ...
Zaqar现在不再使用默认的mail()函数发送电子邮件,而是使用PHPMailer库。 这似乎是整体发送消息的一种更干净的方式,而且它很容易允许附件发送。 将继续尝试使用该库的更多功能。 如何安装和使用 要使用Zaqar,您...
12.支持SOCKET会话,根据SMTP协议发送邮件,需要在inc.php文件中设置 13.支持对留言内容和回复内容的问题色彩自定义,需要在inc.php文件中设置 v2.1 修正了插图图片显示时只可以显示一张的BUG 用户名/密码:...