- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Zend_Mail_Transport_Smtp
发送电子邮件。发送部分工作正常,但是,我正在努力尝试将电子邮件复制到发送电子邮件帐户的“已发送”文件夹中。当从 Zend_Mail 生成消息时,我不断收到 Call to a member function getContent() on a non-object.
这是我正在做的:
$config = array(
'auth' => 'login',
'username' => $from,
'password' => $password);
$transport = new Zend_Mail_Transport_Smtp('smtp.123-reg.co.uk', $config);
Zend_Mail::setDefaultTransport($transport);
$mail = new Zend_Mail('utf-8');
$mail->addTo('foo@bar.com');
$mail->setSubject('Test');
$mail->setFrom('baz@bar.com', 'Baz');
$mail->setBodyText('This is the email');
$mail->send();
**$message = $mail->generateMessage(); <----- here is the problem**
*This is where I would append the message to the sent folder.*
$mail = new Zend_Mail_Storage_Imap
array('host' => 'imap.123-reg.co.uk',
'user' => 'baz@bar.com',
'password' => 'p'
));
$mail->appendMessage($message,'Sent');
我不确定我是否遗漏了任何东西或以完全错误的方式执行此操作。任何帮助都会很棒。
最佳答案
好的,我找到了解决问题的方法。 Zend_mail 有缺陷/不完整,因为它实际上并没有从 Zend_mail 对象创建字符串(至少对于 ZF1 而言)。
我的解决方案可能不是最优雅的,但至少是可行的解决方案。我最终使用了 Swift Mailer——它在发送电子邮件方面非常优雅(它只处理发送电子邮件——而不是 IMAP 的东西)。一旦你使用 swift 创建了一条消息——调用 toString() 方法——然后你就可以使用 Zend_mail 的 appendMessage()。我从 rixtsa 在 http://php.net/manual/en/function.imap-append.php 中的帖子中得到了解决方案.也许ZF2没有这个问题,但是如果你在ZF1上你可以使用这个方法。
// create the message
$message = Swift_Message::newInstance()
->setSubject('The subject')
->setFrom(array('a@b.com'=> 'Alfa Beta'))
->setTo(array('recipient1@r.com','recipient2@r.com'))
->setBody('The body is here= could be')
->addPart('<q>If you want html body use this method/q>', 'text/html')
;
//send the message
$transport = Swift_SmtpTransport::newInstance('smtp.123-reg.co.uk', 25)
->setUsername($user)
->setPassword($password)
;
$mailer = Swift_Mailer::newInstance($transport);
$result = $mailer->send($message);
// generate the string from the message
$msg = $message->toString();
// use the string with Zend_Mail_Storage_Imap's appendMessage()
$mail = new Zend_Mail_Storage_Imap(
array('host' => 'imap.123-reg.co.uk',
'user' => $user,
'password' => $password
));
$mail->selectFolder('Sent');
$mail->appendMessage($msg);
我希望有人能找到更好、更优雅的解决方案——甚至更好——bug 得到解决。但就目前而言,经过大量阅读和搜索后,我最终使用 Swift Mailer 来弥合差距。
关于zend-framework - Zend_Mail generateMessage() 导致 fatal error : Call to a member function getContent() on a non-object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15499118/
使用 Prompter 方法在 FormFlow 中发送自定义卡片。查看代码发现有一个 GenerateMessages() 方法,对于下面的代码,它总是返回 false。有人可以阐明为什么/何时使用
当我尝试运行 Spark 应用程序时,出现以下异常。我正在使用 eclipse maven 项目。请任何人建议为什么会出现此异常。pom.xml 中是否缺少任何依赖项或者可能存在任何其他问题?它显示代
我正在使用 Zend_Mail_Transport_Smtp 发送电子邮件。发送部分工作正常,但是,我正在努力尝试将电子邮件复制到发送电子邮件帐户的“已发送”文件夹中。当从 Zend_Mail 生成消
我是一名优秀的程序员,十分优秀!