首页 > 代码库 > yii 邮箱封装

yii 邮箱封装

<?phpclass Mailer{    private static $obj;    private static $config;    public static function getMailer()    {        if (!is_object(self::$obj)) {            self::$config = [                ‘class‘ => ‘Swift_SmtpTransport‘,                ‘host‘ => ‘smtp.163.com‘,                ‘username‘ => ‘xxx@163.com‘,                ‘password‘ => ‘xxx‘,                ‘port‘ => ‘994‘,                ‘encryption‘ => ‘ssl‘, //ssl tls            ];            self::$obj = \Yii::createObject([                    ‘class‘ => ‘yii\swiftmailer\Mailer‘,                    ‘viewPath‘ => ‘@common/mail‘,                    ‘useFileTransport‘ => false,                    ‘transport‘ => self::$config,            ]);        }        return self::$obj;    }    public static function send($toEmail, $subject, array $compose)    {        $user = \Wskm::getUser();                if ($compose) {
        //同时设置2种内容,让用户的偏好自己选择 self
::getMailer()->compose( //[‘html‘ => ‘passwordResetToken-html‘, ‘text‘ => ‘passwordResetToken-text‘], [‘user‘ => $user] //[‘html‘ => ‘passwordResetToken-html‘], [‘user‘ => $user] $compose ); }else{ self::getMailer()->setBody(‘My <em>amazing</em> body‘, ‘text/html‘); self::getMailer()->addPart(‘My amazing body in plain text‘, ‘text/plain‘); } //https://swiftmailer.symfony.com/docs/messages.html //addTo addCc addBcc //$message->setTo([‘some@address.tld‘, ‘other@address.tld‘]); //$message->setCc([ // ‘person1@example.org‘, ‘person2@otherdomain.org‘ => ‘Person 2 Name‘, //]); //->attach(Swift_Attachment::fromPath(‘my-document.pdf‘)->setFilename(‘cool.jpg‘)) /* // Create the message $message = new Swift_Message(‘My subject‘); // Set the body $message->setBody( ‘<html>‘ . ‘ <body>‘ . ‘ Here is an image <img src="http://www.mamicode.com/‘ . // Embed the file" alt="Image" />‘ . ‘ Rest of message‘ . ‘ </body>‘ . ‘</html>‘, ‘text/html‘ // Mark the content-type as HTML ); */ /* * 验证 use Egulias\EmailValidator\EmailValidator; use Egulias\EmailValidator\Validation\RFCValidation; $validator = new EmailValidator(); $validator->isValid("example@example.com", new RFCValidation()); */ /* * 加密 $smimeSigner = new Swift_Signers_SMimeSigner(); $smimeSigner->setSignCertificate(‘/path/to/certificate.pem‘, [‘/path/to/private-key.pem‘, ‘passphrase‘]); $message->attachSigner($smimeSigner); */ /* * 回执 $MESSAGE->setReadReceiptTo(‘你@地址。 TLD ‘); */ /** * ->setCharset(‘iso-8859-2‘); 编码 * ->setPriority(2); 设置优先级,1-5 */ return self::getMailer()->compose( //[‘html‘ => ‘passwordResetToken-html‘, ‘text‘ => ‘passwordResetToken-text‘], [‘user‘ => $user] [‘html‘ => ‘passwordResetToken-html‘], [‘user‘ => $user] ) ->setFrom([ self::$config[‘username‘] => ‘test robot‘]) ->setTo($toEmail) ->setSubject($subject) ->send(); }}

 

yii 邮箱封装