我使用下面的PHP代码发送电子邮件到一个地址和密送其他2个地址。它向收件人发送罚款,但我只能将其发送到2个密件抄送地址之一。 (见代码中的评论我试过的)
奇怪的是,$结果又回来了3,所以它似乎试图发送第二封bcc电子邮件,但它永远不会通过。
<?php
$tracker='tracking@pnrbuilder.com';
$subject = $_POST['subject'];
$sender = $_POST['sender'];
$toEmail=$_POST['toEmail'];
$passedInEmail=stripslashes($_POST['message']);
$passedInEmail=preg_replace('/ /',' ',$passedInEmail);
require_once('swiftLib/simple_html_dom.php');
require_once('swiftLib/swift_required.php');
$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance($transport);
// Create the message
$message = Swift_Message::newInstance();
//turn the meesage into an object using simple_html_dom
//so we can iterate through and embed each image
$content = str_get_html($passedInEmail);
// Retrieve all img src tags and replace them with embedded images
foreach($content->find('img') as $e)
{
if($e->src != "")
{
$value = $e->src;
$newValue = $message->embed(Swift_Image::fromPath($value));
$e->src = $newValue;
}
}
$message->setSubject($subject);
$message->setFrom($sender);
$message->setTo($toEmail);
//this is my problem
$message->setBcc(array('tracking@pnrbuilder.com',$sender));
//as it is above only "sender" gets the email
//if I change it like this:
//$message->setBcc($tracker,$sender);
//only "tracker" gets the email
//same if I change it like this:
//$message->setBcc($sender);
//$message->addBcc($tracker);
$message->setReplyTo(array('flights@pnrbuilder.com'));
$message->setBody($content,'text/html');
$result = $mailer->send($message);
if ($result=3) {
echo 'Email Sent!';
}
else {
echo 'Error!';
}
?>
这样做的正确方法是什么?
答案 0 :(得分:7)
您可以找到swiftmailer教程here
示例:
$message->setBcc(array(array('some@address.tld' => 'The Name'),array('another@address.tld' => 'Another Name')));
尝试设置电子邮件地址的名称,看看它是否有所不同。
答案 1 :(得分:0)
这最终成为服务器端的一个问题,我联系了我的托管服务提供商(GoDaddy),他们能够在解决问题的过程中做出一些改变。感谢所有试图提供帮助的人!