✏️ 正在编辑: Mail.php
路径:
/srv/systems_dir/contemax/library/Core/Mail.php
提示:
您可以编辑任何文件(包括二进制文件),但请注意不当修改可能导致文件损坏。
<?php class Core_Mail extends Zend_Mail { protected $_transport; protected $_mail; public function __construct($charset = null) { $config = new Zend_Config_Ini(CLIENT_PATH . '/application/configs/application.ini'); $mailFrom = $config->production->amazon->email; if( !file_exists(CLIENT_PATH . '/application/configs/application.ini') || !@$config->production->amazon->smtp ){ throw new Core_Exception("Sistema não possui as configurações mínimas para envio da mensagem." ); } $this->_transport = new Zend_Mail_Transport_Smtp('email-smtp.us-east-1.amazonaws.com', $config->production->amazon->smtp->toArray()); $this->_mail = new Zend_Mail('UTF-8'); $this->_mail->setDefaultTransport($this->_transport); //seta o servidor smtp $this->_mail->setReturnPath($mailFrom); $this->_mail->addHeader('Errors-To', $mailFrom, true); //seta o header com o e-mail para retorno dos erros - recebe os bounces $this->_mail->setFrom($mailFrom); if( !$this->emailIsValid($mailFrom) ){ throw new Core_Exception("O e-mail " . $mailFrom . " do remetente é inválido." ); } parent::__construct($charset); } public function newMessage(){ $this->_mail->clearRecipients(); $this->_mail->clearMessageId(); $this->_mail->clearSubject(); $this->_mail->setMessageId(); //seta o id da mensagem } public function enviarMensagemHtml($nomePara, $emailPara, $assunto, $mensagem) { if ($this->_transport instanceof Zend_Mail_Transport_Smtp && $this->_mail instanceof Zend_Mail) { if( !$this->emailIsValid($emailPara) ){ return array( 'status' => 0, 'msg' => "O e-mail $emailPara do destinatário é inválido." ); } $this->newMessage(); $this->_mail->addTo($emailPara, $nomePara); $this->_mail->setSubject($assunto); $this->_mail->setBodyHtml($mensagem, "UTF-8"); $this->_mail->_parts = $this->_parts; $this->_mail->send($this->_transport); return array('status' => 1, 'msg' => 'Mensagem enviada com sucesso.'); } else { throw new Exception('Configuração de SMTP inválida.'); } } public function emailIsValid($email){ $validateEmail = new Zend_Validate_EmailAddress(); $zendValidate = $validateEmail->isValid($email); if(!$zendValidate) return false; $notifications = new Core_Mail_Notifications(); if($notifications->isBounced($this->_mail->getFrom(), $email)) return false; if($notifications->isComplained($this->_mail->getFrom(), $email)) return false; return true; } }
💾 保存文件
← 返回文件管理器