最新消息:文章中包含代码时,请遵守代码高亮规范!

使用swiftmailer发送邮件【原创】

PHP Pota 1243浏览 0评论

PHP发送邮件是很常见的一个功能,之前在写项目中同样遇到这类需求,遇到之后首选方案是使用PHPMailer进行处理,不过在实际使用中,解决了各类问题遇到了最后一个参数为0的错误,谷歌解决方案为重装PHP,只能弃用。之后搜索找到swiftmailer插件,官方地址为:http://swiftmailer.org
github地址https://github.com/swiftmailer/swiftmailer,话不多说直接上代码

/**
     * 发送邮件
     *
     * @param string $body  消息
     * @param $subject 主题
     * @param $to 收件人
     * @return int
     */
    function sendMail($body = '',$subject , $to)
    {
        $transport = \Swift_SmtpTransport::newInstance('220.181.12.12', 465, 'ssl');
        $transport -> setUsername('*******@163.com');
        $transport -> setPassword('******');  //该密码为smtp密码具体自行百度设置
        $mailer = \Swift_Mailer::newInstance($transport);

        $message = \Swift_Message::newInstance();
        $message -> setSubject($subject);
        $message -> setFrom(array('******@163.com'=>'1111111'));
        $message -> setTo(array($to));
        $message -> setBody($body);
//        $message ->setPart('');
//        $message ->attach(''); //附件
        $result = $mailer->send($message);
//        printf("Sent %d messages\n", $result);

        return $result;
    }

在使用前需要在控制器引入

require_once(dirname(dirname(dirname(__FILE__))) . '/FrontendBundle/swiftmailer-5.x/lib/swift_required.php');
require_once(dirname(dirname(dirname(__FILE__))) . '/FrontendBundle/swiftmailer-5.x/lib/swift_init.php');

在使用中需要注意几点,其中使用的密码均为发信邮箱的smtp密码。具体到各个邮箱 百度一下都有详细的设置方法,这里也就不在多说,其中,220.181.12.12 为使用邮箱的SMTP服务器地址,正常的地址应当是smtp.***.com,但是在实际使用中你会发现很多情况下出现无法访问的错误,百度后得知目前一般为IPV6地址导致无法连接,解决方案就ping服务器获取IPV4地址进行替换.220.181.12.12则为smtp.163.com的地址,端口号465。
这样一个简单发送纯文字的方法就搞定了。因为目前项目中使用的也只有文字功能,当然图片,附件的方法在官方文档中都有详细的代码示例。

转载时请注明出处及相应链接,本文永久地址:http://blog.it985.com/18870.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者Pota的打赏,我们会更加努力!    如果您想成为作者,请点我

您必须 登录 才能发表评论!