php – 为什么SwiftMailer会发送两封电子邮件?
发布时间:2020-12-13 17:17:43 所属栏目:PHP教程 来源:网络整理
导读:我通过 PHP的SwiftMailer库发送电子邮件.我有这个PHP代码从1个发件人向1个电子邮件收件人发送1封电子邮件.这是代码: $email = /*some email recipient*/;$sendEmail = /*sender's email*/;$sendName = /*sender's name*/;$subject = /*email subject*/;$bod
我通过
PHP的SwiftMailer库发送电子邮件.我有这个PHP代码从1个发件人向1个电子邮件收件人发送1封电子邮件.这是代码:
$email = /*some email recipient*/; $sendEmail = /*sender's email*/; $sendName = /*sender's name*/; $subject = /*email subject*/; $body = /*email body*/; //Create the message //Create the Transport $transport = Swift_SmtpTransport::newInstance('/*mail host*/',/*port*/) ->setUsername('/*some username*/') ->setPassword('/*some password*/') ; //Create the Mailer using your created Transport $mailer = Swift_Mailer::newInstance($transport); //Create a message $message = Swift_Message::newInstance($subject) ->setFrom(array($sendEmail => $sendName)) ->setTo($email) ->setBody($body,'text/html') ; //Send the message $result = $mailer->send($message); 每次我运行此代码时,它都会将该发件人的电子邮件发送给该主题和正文的电子邮件.两个完全相同的电子邮件.知道为什么吗? 更新 – 这是完整的代码: 这是整个页面: <?php ob_start(); session_start(); require_once ('config.php'); require_once 'swiftmailer/lib/swift_required.php'; include ('functions.php'); require_once (MYSQL); sendConfirmation(12,3,$dbc); ob_end_flush(); ?> 这是在页面中引用的函数(位于functions.php文件中: function sendConfirmation($signup_id,$app_id,$dbc){ //get signup email and ref code $q = "SELECT email,ref_code FROM sign_ups WHERE (signup_id='$signup_id')"; $r = mysqli_query ($dbc,$q) or trigger_error("Query: $qn<br />MySQL Error: " . mysqli_error($dbc)); $email; $ref; if (mysqli_num_rows($r) == 1){ $row = mysqli_fetch_array($r,MYSQLI_ASSOC); $email = $row['email']; $ref = $row['ref_code']; } //get app info (subject,email body,sender email,sender name) $q = "SELECT bsignupemail_subj,bsignup_email,email,name,bsignup_url FROM apps WHERE (app_id='$app_id')"; $r = mysqli_query ($dbc,$q) or trigger_error("Query: $qn<br />MySQL Error: " . mysqli_error($dbc)); $sendEmail; $sendName; $subject; $body; $url; if (mysqli_num_rows($r) == 1){ $row = mysqli_fetch_array($r,MYSQLI_ASSOC); $url = $row['bsignup_url']; $sendEmail = $row['email']; $sendName = $row['name']; $subject = $row['bsignupemail_subj']; $body = $row['bsignup_email']; } //Create the message //Create the Transport $transport = Swift_SmtpTransport::newInstance('/*host*/',/*port*/) ->setUsername('/*username*/') ->setPassword('/*password*/') ; //Create the Mailer using your created Transport $mailer = Swift_Mailer::newInstance($transport); //Create a message $message = Swift_Message::newInstance($subject) ->setFrom(array($sendEmail => $sendName)) ->setTo(array($email)) ->setBody($body,'text/html') ; //Send the message $result = $mailer->send($message); } 解决方法
这可能是由于逻辑错误,使用Swift Mailer的代码要求它发送两次.
检查错误的循环,递归函数调用以及变量的多个包含和初始化等.有人告诉Swift Mailer两次发送电子邮件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |