我真的坚持使用这种通过附件发送电子邮件的swiftmail方法。我的电子邮件似乎永远不会被发送。我发送电子邮件,它只是ruturns没有任何错误,但当我检查我的邮件没有任何交付。请帮忙!我解决了一切,除了attach()函数之外,一切都正常。我不知道什么是错的。这是我的代码。
<?php
//I didnt add my validations and variables above.....
require_once('./swiftmailer/lib/swift_required.php');
$transport = Swift_SmtpTransport::newInstance('smtp.host.com', 25)
->setUsername('user')
->setPassword('pass');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance()
->setSubject('Online Form')
->setFrom(array($from_email => $full_name))
->setTo(array('email@mail.com' => 'Jack'))
->setBody(''.$message_temp.'')
->attach(Swift_Attachment::fromPath($_FILES['attachment']['tmp_name'])
->setFilename($_FILES['attachment']['name']));
$result = $mailer->send($message);
?>
答案 0 :(得分:1)
糟糕!没关系,我解决了它myslef。
我将$ _FILES ['attachment'] ['tmp_name']分配给临时变量并且它有效!
不知道为什么,但这解决了我。
这是我的代码;
// Swiftmail commands ====================================
require_once('./swiftmailer/lib/swift_required.php');
$transport = Swift_SmtpTransport::newInstance('smtp.host.com', 587)
->setUsername('email@host.com')
->setPassword('pass');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance()
->setSubject($subject_temp)
->setFrom(array($from_email => $full_name))
->setTo(array('email@host.com' => 'Jack'))
->setBody($message_temp)
->attach(Swift_Attachment::fromPath($file_temp_name)
->setFilename($name_of_file));
$result = $mailer->send($message);
// Swiftmail commands ====================================
$ file_temp_name = $ _FILES ['attachment'] ['tmp_name']; 和 $ name_of_file = basename($ _ FILES ['attachment'] ['name']);