Home  >  Article  >  Backend Development  >  How to send emails in groups using PHP

How to send emails in groups using PHP

王林
王林Original
2023-05-25 08:10:351075browse

With the popularity of network communications, email has become an indispensable part of people's daily lives. In modern enterprises, institutions and individuals, sending emails has become an essential part of the work. In many application scenarios, we need to send emails to a group of people or multiple groups of people. In this case, we need to use the method of sending emails in groups. This article will introduce how to implement group mail sending in PHP.

1. The concept of sending emails in groups

Sending emails in groups refers to grouping multiple recipient addresses and then sending emails to the addresses in the same group as a whole. This method can reduce the number of emails sent and improve sending efficiency. Email grouping is usually used within companies and teams to send emails such as company notifications, meeting notifications, and training notifications.

2. Group management

To implement group mail sending in PHP, you first need to perform group management. Here you can use arrays or database tables to store group information. For arrays, you can group them in the following way:

$groups = [
    'group1' => ['a@example.com', 'b@example.com', 'c@example.com'],
    'group2' => ['d@example.com', 'e@example.com', 'f@example.com'],
    ...
];

For database tables, you can design the following structure:

CREATE TABLE `groups` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `members` text NOT NULL,
  PRIMARY KEY (`id`)
);

Among them, name is the group name, members is the group members, separated by commas .

3. Email sending

With the foundation of group management, we can use PHPMailer to send emails. PHPMailer is an open source email sending class library that can easily perform email sending and other related operations. The following is the PHPMailer code for sending emails in groups:

<?php
require 'phpmailer/PHPMailerAutoload.php';

// 数据库连接信息
$host = 'localhost';
$user = 'username';
$pass = 'password';
$dbname = 'dbname';

// 连接数据库
$conn = mysqli_connect($host, $user, $pass, $dbname);
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

// 查询分组信息
$sql = "SELECT * FROM groups";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
    while ($row = mysqli_fetch_assoc($result)) {
        // 分组成员
        $members = explode(',', $row['members']);

        // 发送邮件
        $mail = new PHPMailer;
        $mail->isSMTP();
        $mail->Host = 'smtp.example.com';
        $mail->SMTPAuth = true;
        $mail->Username = 'username';
        $mail->Password = 'password';
        $mail->setFrom('from@example.com', 'from');
        foreach ($members as $member) {
            $mail->addAddress($member);
        }
        $mail->Subject = 'subject';
        $mail->Body = 'body';
        if (!$mail->send()) {
            echo 'Mailer Error: ' . $mail->ErrorInfo;
        } else {
            echo 'Message sent!';
        }
    }
}

mysqli_close($conn);

The above code uses PHPMailer to send emails. It first connects to the database to query the group information, and then traverses the groups to send emails. It is worth noting that if you need to use SSL or TLS to connect, you need to specify SSL or TLS in the SMTP process.

4. Summary

This article introduces the method of sending emails in groups using PHP. By managing group information and using PHPMailer to send emails, batch sending of emails is achieved. Through the introduction of this article, I believe that readers have mastered the method of sending mail groups in PHP and can use it in their own projects.

The above is the detailed content of How to send emails in groups using PHP. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn