2013-12-22 69 views
0

因此,我发送邮件与PHP的邮件库 - swiftmailer的一些问题。 我想用pdf附件发送一些邮件,我已经通过http://swiftmailer.org/pdf/Swiftmailer.pdf了解了swiftmailer的一些bacis,但是我得到了一些错误,我不知道如何解决它们。与swiftmailer发送邮件的PHP问题

我的PHP代码:

<?php 
require_once 'lib/swift_required.php'; 
if (isset ($_POST ['email'])) { 
$email = $_POST ['email']; 
setlocale (LC_ALL, 'sl_SI.UTF-8'); // with this I include so I can use č,š in ž 
$array = array (
    "c", 
    "č", 
    "s", 
    "š", 
    "z", 
    "ž" 
    ); 
    usort ($array, 'strcoll'); 

    $subject = "Name of the mail"; 
    $message = "Dear sir or madame, this is my email message and you have some pdf attachments"; 

//the code of library 
$message = Swift_Message::newInstance() 
->setSubject($subject) 
->setFrom(array('[email protected]' => 'Robert P')) 
->setTo(array($email => 'Reciver')) 
->setBody(->attach(Swift_Attachment::fromPath('home/public_html/Attachment1.pdf')->setFileName('Name of my PDF file1.pdf')) 
      ->attach(Swift_Attachment::fromPath('home/public_html/Attachment2.pdf')->setFileName('Name of my PDF file2.pdf')); 

echo "The mail has been send"; 
} 

?> 

而且我的问题:

Fatal error: Uncaught exception 'Swift_RfcComplianceException' with message 'Address in mailbox 
given [] does not comply with RFC 2822, 3.6.2.' 
in /home/public_html/lib/classes/Swift/Mime/Headers/MailboxHeader.php:352 Stack trace: 

#0 /home/public_html/Flib/classes/Swift/Mime/Headers/MailboxHeader.php(264):      
Swift_Mime_Headers_MailboxHeader->_assertValidAddress('') 
#1 /home/public_html/lib/classes/Swift/Mime/Headers/MailboxHeader.php(108): 
Swift_Mime_Headers_MailboxHeader->normalizeMailboxes(Array) 
#2 /home/public_html/lib/classes/Swift/Mime/Headers/MailboxHeader.php(65): 
Swift_Mime_Headers_MailboxHeader->setNameAddresses(Array) 
#3 /home/public_html/lib/classes/Swift/Mime/SimpleHeaderFactory.php(60): 
Swift_Mime_Headers_MailboxHeader->setFieldBodyModel(Array) 
#4 /home/public_html/lib/classes/Swift/Mime/SimpleHeaderSet.php(70): 
Swift_Mime_SimpleHeaderFactory->createMailboxHeader('To', Array) 
#5 /home/ in /home/public_html/lib/classes/Swift/Mime/Headers/MailboxHeader.php on line 352 
+0

从给出的消息我会说'$ _POST ['email']'设置,但是是空字符串。 –

回答

-1

array($email => 'Reciver')的问题是,Reciver不是一个有效的电子邮件地址。 [email protected]将是有效的。所以尝试像array($email => '[email protected]')

+0

邮件是[email protected],所以我不知道如何解决这个问题... – wanttobeprofessional

+0

去那个库,并使验证电子邮件的代码总是返回true,或类似的东西。或者你可以使用这个http://boun.cr/来使该电子邮件“有效”。 – sudo

+0

顺便说一句。尝试'setTo(array('Reciver'=> $ email))'而不是'setTo(array($ email =>'Reciver'))''。 – sudo