2013-09-23 3 views
-1

У меня есть таблица в моей базе данных, где у меня есть сбще отправить по электронной почтеSwiftMailer принести несколько писем из базы данных MySQL разделенных запятых

вот мой код

<?php 
require_once 'lib/swift_required.php'; 

$con=mysqli_connect("localhost","root","","ex_smartcard"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

$query = mysqli_query($con,"Select autosend.to, 
    autosend.cc, 
    autosend.bcc, 
    autosend.subject, 
    autosend.msg, 
    autosend.start, 
    autosend.expiry, 
    autosend.freq, 
    autosend.timestamp 
From autosend 
Where autosend.start <= CurDate() And autosend.expiry >= CurDate() And 
    autosend.freq = 3"); 
while($row = mysqli_fetch_assoc($query)) 

{ 

$to = $row['to']; 
$cc = $row['cc']; 
$subject = $row['subject']; 
$emailBody=""; 
$emailBody .= $row['msg']; 




// Create the Transport 
$transport = Swift_SmtpTransport::newInstance('192.168.0.1', 25) 
    ->setUsername('[email protected]') 
    ->setPassword('123456') 
    ; 

/* 
You could alternatively use a different transport such as Sendmail or Mail: 

// Sendmail 
$transport = Swift_SendmailTransport::newInstance('/usr/sbin/sendmail -bs'); 

// Mail 
$transport = Swift_MailTransport::newInstance(); 
*/ 

// Create the Mailer using your created Transport 
$mailer = Swift_Mailer::newInstance($transport); 

// Create the message 
$message = Swift_Message::newInstance() 

    // Give the message a subject 
    ->setSubject($subject) 

    // Set the From address with an associative array 
    ->setFrom(array('[email protected]' => 'Lotus Reminder')) 

    // Set the To addresses with an associative array 
    ->setTo(array($to)) 

    // Using setCc() to set all recipients in one go 
    ->setCc(array($cc)) 


    // Give it a body 
    ->setBody($emailBody) 



    ; 

$headers = $message->getHeaders(); 
// Send the message 
$result = $mailer->send($message); 
printf("Sent %d messages\n", $result); 
echo $cc; 

} 

?> 

$ к = EMAIL1 @ пример. ком $ куб.см = [email protected], [email protected]

я получаю эту ошибку

Fatal error: Uncaught exception 'Swift_RfcComplianceException' with message 'Address in mailbox given [[email protected], [email protected]] does not comply with RFC 2822, 3.6.2.' in C:\xampp\htdocs\PHPMailer\Swift\lib\classes\Swift\Mime\Headers\MailboxHeader.php:352 Stack trace: #0 C:\xampp\htdocs\PHPMailer\Swift\lib\classes\Swift\Mime\Headers\MailboxHeader.php(264): Swift_Mime_Headers_MailboxHeader->_assertValidAddress('[email protected]') #1 C:\xampp\htdocs\PHPMailer\Swift\lib\classes\Swift\Mime\Headers\MailboxHeader.php(108): Swift_Mime_Headers_MailboxHeader->normalizeMailboxes(Array) #2 C:\xampp\htdocs\PHPMailer\Swift\lib\classes\Swift\Mime\Headers\MailboxHeader.php(65): Swift_Mime_Headers_MailboxHeader->setNameAddresses(Array) #3 C:\xampp\htdocs\PHPMailer\Swift\lib\classes\Swift\Mime\SimpleHeaderFactory.php(60): Swift_Mime_Headers_MailboxHeader->setFieldBodyModel(Array) #4 C:\xampp\htdocs\PHPMailer\Swift\lib\classes\Swift\Mime\SimpleHeaderSet.php(70): Swift_Mime_SimpleHeaderFactory->createMailboxHeader('Cc', A in C:\xampp\htdocs\PHPMailer\Swift\lib\classes\Swift\Mime\Headers\MailboxHeader.php on line 352 

Скажите, как отправить их. У меня есть много писем в столбце cc, разделенных запятой, если я должен изменить формат сообщений в mysql или изменить код.

ответ

1

Вы пробовали несколько значений в виде массива, например .:

$cc = array('[email protected]', '[email protected]'); 

См Syntax for Addresses подраздела Документов.

Если это работает, и вы хотите превратить строку, разделенную запятой, которую вы получаете из базы данных в массив, функция explode() должна помочь.

EDIT:

Может быть что-то вроде:

$cc = array_map('trim', explode(',', $row['cc'])); 

Где взрываются разбивает строку в массив через запятую и функции array_map() применяет функцию trim() к каждому из элементов массива, удаляя все оставшиеся пробелы на обоих концах.

+0

да это работает, но я хочу электронная почта от базы данных MySQL пожалуйста скажите мне изменения в коде ..... –

+0

@ShiveshJaiswal см мой выбор для общего представление о том, как вы могли бы подходить к нему. – jedwards

+0

@ jedwards Спасибо, что работает для меня ...... Спасибо ..... –

0

куб.см должны быть переданы в виде массива действует

$array = array("[email protected]", "[email protected]"); 
$subject = "hrere"; 
$message = new Swift_Message($subject); 
$message->setCc($array); 
+0

, если я укажу почту здесь, его работаю, но как его получить из mysql –

+0

Что-то вроде этого должно работать, а ($ row = mysql_fetch_assoc ($ query)) {$ array [] = $ row ['cc']; } теперь просто передаем этот массив функции setCc –

Смежные вопросы