PHP 发送HTML邮件
需要实现php自动发邮件,原本希望调用Jmail组件实现的,但是发送中文内容的时候,在邮件正文后面总是多出一串乱码,另我很纠结,在网上找了半天也没有能找到原因,无奈之下找了一个socket实现的例子。后来发现,jmail乱码可能的原因是:设置contenttype为“text/html”时中文就会多出乱码,去掉这个设置就不会有乱码,但是不能按照html发送了。
废话少说,直接给出源码吧:
set_time_limit(120);
class smtp_mail
{
var $socket; //socket 句柄
var $host; //主机
var $port; //端口一般为25
var $user; //SMTP认证的帐号
var $pass; //认证密码
var $debug = false; //是否显示和服务器会话信息?
var $conn;
var $result_str; //结果
var $in; //客户机发送的命令
var $from_r; //真实的源信箱,一般与smtp服务器的用户名一样,否则可能由于smtp服务器的设置而发送不成功
var $mailformat=0; //邮件格式0=普通文本1=html邮件
function smtp_mail($host,$port,$user,$pass,$debug=false)
{
$host = gethostbyname($host);
$this->host = $host;
$this->port = $port;
$this->user = base64_encode($user);
$this->pass = base64_encode($pass);
$this->debug = $debug;
$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //具体用法请参考手册
if($this->socket)