账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    php 发送email 如何进行生日邮件发送
    • 2020-01-01 00:00
    • 11
    27
    0

    <?php

    //邮件发送

    require '../static/assets/vendors/mailer/class.phpmailer.php';
    require '../static/assets/vendors/mailer/class.smtp.php';
    require '../functions.php';

    date_default_timezone_set('PRC');
    ignore_user_abort();
    set_time_limit(0);
    $interval = 60*1;
    do{
    $sql = 'select bir,email FROM users ';
    $bir_email = xiu_query($sql);
    $arr = array( );
    $b=date('m/d');
    foreach ($bir_email as $item) {
      $timestamp = strtotime($item['bir']);
      $a = date('m/d', $timestamp);
      if ($a === $b) {
        $arr[$item['email']] = $item['bir'];
      }
    }
        $mail = new PHPMailer();
        $mail->SMTPDebug =3;
        $mail->isSMTP();
        $mail->SMTPAuth=true;
        $mail->Host = 'smtp.qq.com';
        $mail->SMTPOptions = array(
        'ssl' => array(
            'verify_peer' => false,
            'verify_peer_name' => false,
            'allow_self_signed' => true
            )
        );
        $mail->SMTPSecure = 'ssl';
        //设置ssl连接smtp服务器的远程服务器端口号 可选465或587
        $mail->Port = 465;
        $mail->Hostname = 'localhost';
        $mail->CharSet = 'UTF-8';
        $mail->FromName = 'XXXXXX';
        $mail->Username ='xingyang0320@foxmail.com';
        $mail->Password = 'ipstvtuisxwaeche';
        $mail->From = 'xingyang0320@foxmail.com';
        $mail->isHTML(true);
    // foreach ($variable as $key => $value) {
    //   $mail->addAddress($key);
    // }
        $mail->addAddress('2010055685@qq.com');
        $mail->Subject = '生日快乐';
        $mail->Body ='祝你生日快乐';
        // $mail->addAttachment('./src/20151002.png','test.png');
        $status = $mail->send();
        if($status)
        {
        echo '发送邮件成功'.date('Y-m-d H:i:s');;
        }
        else
        {
        echo '发送邮件失败,错误信息未:'.$mail->ErrorInfo;
        }
        sleep($interval);//休眠1minute
    }while(true);

    ?>

    date_default_timezone_set('PRC');
    ignore_user_abort();
    set_time_limit(0);
    $interval = 60*1;
    这个虽然可以定时发送 但是无法更改
    do 里面的函数 我需求是每次都连接数据库 要查询一回生日 是否和今天一样
    是的话放入arr 数组

    进行多个发送

    但是使用 没有响应
    foreach ($variable as $key => $value) {
    $mail->addAddress($key);
    }

    其次在执行时 如果更改 一些设置 它还是按原来的发送一次 新的发送一次
    这样即使更改今天给谁发送生日邮件 以前的也会执行吧

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 别动我 普通会员 1楼

      在PHP中,你可以使用PHPMailer库来发送邮件。以下是一个简单的示例,展示了如何发送生日邮件:

      首先,你需要安装PHPMailer库。你可以从PHPMailer的官方网站下载并安装。

      bash composer require phpmailer/phpmailer

      然后,你可以创建一个PHP文件(例如send生日邮件.php),并添加以下代码:

      ```php

      mail = new PHPMailer; } public function send($email, $name, $message) { $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->SMTPAuth = true; $mail->Username = 'your-email@gmail.com'; $mail->Password = 'your-password'; $mail->SMTPSecure = 'tls'; $mail->Port = 587; $mail->setFrom('your-email@gmail.com', 'Your Name'); $mail->addAddress($email, $name); $mail->addCC('cc-email@gmail.com', 'CC Name'); $mail->addBCC('bcc-email@gmail.com', 'BCC Name'); $mail->Subject = 'Your Birthday'; $mail->Body = $message; $mail->send(); } } // 使用示例 BirthdayMail::send('user@example.com', 'John Doe', 'Happy Birthday!'); ?>

      ```

      在这个示例中,我们首先创建了一个BirthdayMail类。在构造函数中,我们设置了邮件的主机、SMTP服务器、用户名、密码和端口。

      然后,我们创建了一个send方法,该方法接受邮件的发件人、收件人、主题和消息作为参数。

      最后,我们使用send方法发送邮件。在这个例子中,我们发送了一封简单的生日邮件。

      注意:在实际使用中,你需要将your-email@gmail.comyour-passwordcc-email@gmail.combcc-email@gmail.com替换为你的实际电子邮件地址、密码和收件人邮件地址。

      此外,你还需要安装PHPMailer库,你可以从PHPMailer的官方网站下载并安装。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部