【问题标题】:Transfer textarea lines to arrays php将 textarea 行传输到数组 php
【发布时间】:2021-04-03 01:00:26
【问题描述】:

我正在尝试使用带有 textarea 的表单,我将在其中放置一些电子邮件。 提交表单后,phpmailer.php 必须连接到 smtp。然后对于 textarea 中的每一行/电子邮件,它都会发送一封电子邮件。

有没有办法在不为每条线路/电子邮件打开 smtp 连接的情况下做到这一点?

这是phpmailer中的代码:


try {
    //Server settings
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      // Enable verbose debug output
    $mail->isSMTP();                                            // Send using SMTP
    $mail->Host       = 'smtp.example.com';                    // Set the SMTP server to send through
    $mail->SMTPAuth   = true;                                   // Enable SMTP authentication
    $mail->Username   = 'user@example.com';                     // SMTP username
    $mail->Password   = 'secret';                               // SMTP password
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;         // Enable TLS encryption; `PHPMailer::ENCRYPTION_SMTPS` encouraged
    $mail->Port       = 587;                                    // TCP port to connect to, use 465 for `PHPMailer::ENCRYPTION_SMTPS` above

    //Recipients
    $mail->setFrom('from@example.com', 'Mailer');
    $mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient
    $mail->addAddress('ellen@example.com');               // Name is optional
    $mail->addReplyTo('info@example.com', 'Information');
    $mail->addCC('cc@example.com');
    $mail->addBCC('bcc@example.com');

    // Attachments
    $mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
    $mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name

    // Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = 'Here is the subject';
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

【问题讨论】:

    标签: php arrays variables


    【解决方案1】:

    在这种情况下,您可以分解按表单发布的电子邮件并将每个电子邮件添加为密件抄送,例如:

    $_POST['emails'] = 
        'email1@example.com
        email2@example.com
        email3@example.com
        email4@example.com
        email5@example.com';
    
    $emails=explode(PHP_EOL, $_POST['emails']);
       
    foreach ($emails as $email) {
        $mail->addBCC($email);
    }
    

    test PHP code online

    【讨论】:

    • 有没有办法不用密件抄送,只用普通邮件?
    • 使用密件抄送是向不同的接收者发送相同的电子邮件消息而不向每个接收者显示接收者列表的常用方法。这是使用单个 SMPT 会话发送多封电子邮件的方式。
    猜你喜欢
    • 1970-01-01
    • 2014-02-18
    • 2016-05-29
    • 1970-01-01
    • 2012-09-12
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 2014-05-28
    相关资源
    最近更新 更多