php通过socket编程,以SMTP将邮件发送到指定的QQ邮箱里面。

本文介绍了如何在Windows环境下配置PHP的php.ini文件,启用openssl和sockets扩展,设置SMTP参数来发送邮件。重点是使用QQ邮箱作为SMTP服务器,详细步骤包括开启QQ邮箱的POP3/SMTP服务。通过HTTP状态码解释SMTP通信过程,并提供了一个经过验证的SMTP类(class.mail.php)和测试代码(sendmail.php)用于实际发送邮件。
摘要由CSDN通过智能技术生成

在刚开始先配置好php.ini文件:

(1)我是在window 7 下面进行配置的。

(2)将扩展extension=php_openssl.dll,extension=php_sockets.dll打开

(3)设置allow_url_fopen = On,SMTP = localhost,smtp_port = 25,

          当然sendmail_from,sendmail_path可以不用设置。但在Unix下sendmail_path需要设置

接下来用qq邮箱测试时需要设置:

(1)打开qq邮箱设置。

(2)然后在账户中将pop3/smtp勾选,保存设置。当然这里注意自己的邮箱和测试邮箱都要开启。

这里简单介绍一下HTTP状态含义一边测试使用,这是我测试浏览器显示的内容:

     220 smtp.qq.com Esmtp QQ Mail Server 
   250-smtp.qq.com 
   250-PIPELINING 
   250-SIZE 52428800 
   250-STARTTLS 
   250-AUTH LOGIN PLAIN 
   250-AUTH=LOGIN SMTP用户验证
   250-MAILCOMPRESS 
   250 8BITMIME 
   334 VXNlcm5hbWU6 输入使用BASE64编码的用户名
   334 UGFzc3dvcmQ6 输入使用BASE64编码的密码
   235 Authentication successful 验证通过
   250 Ok 接受者邮件地址

   250 Ok 告诉服务器我要开始发送邮件数据了
   354 End data with . 
     250 Ok: queued as 
    邮件发送成功

下面便是发送邮件的一个SMTP类,经过本人修改,没问题了,class.mail.php:

<?php
define('SMTP_STATUS_NOT_CONNECTED', 1, TRUE);
define('SMTP_STATUS_CONNECTED', 2, TRUE);
/**
* @desc   SMTP 邮件服务器
* @param  服务器参数和邮件信息
*/
class p8_smtp
{
    var $connection;
    var $recipients;
    var $headers;
    var $timeout;
    var $errors;
    var $status;
    var $body;
    var $from;
    var $host;
    var $port;
    var $helo;
    var $auth;
    var $user;
    var $pass;
    
    /**
     *  参数为一个数组
     *  host        SMTP 服务器的主机       默认:localhost
     *  port        SMTP 服务器的端口       默认:25
     *  helo        发送HELO命令的名称      默认:localhost
     *  user        SMTP 服务器的用户名     默认:空值
     *  pass        SMTP 服务器的登陆密码   默认:空值
     *  timeout     连接超时的时间          默认:5
     *  @return  bool
     */
    
    function p8_smtp($params = array())
    {
        if(!defined('CRLF')) define('CRLF', "\r\n", TRUE);
        
        $this->timeout  = 5;
     
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值