zoukankan      html  css  js  c++  java
  • ThinkPHP 3.2.3 使用 Swift Mailer 邮件系统发送邮件

    SwiftMailer 下载地址:https://github.com/swiftmailer/swiftmailer

    版本:swiftmailer-5.x

    把压缩包解压到 /ThinkPHP/Library/Vendor 中。

    配置文件 config.php

    <?php
    return array(
    	//'配置项'=>'配置值'
    	// 邮件配置
    	'SMTP'	=>	'smtp.XXX.cn',
    	'MAIL_PORT'	=>	25,
    	'MAIL_USER' => 'XXX@XXX.com', //邮箱用户名
    	'MAIL_PWD'	=> 'XXX', //发送邮箱密码或者授权码
    	'MAIL_FROM' => 'XXX@XXX.com',
    	'MAIL_FROM_NAME' => 'dee',
    );
    

    /Application/Home/Common/Swiftmail.class.php

    <?php
    namespace HomeCommon;
    
    class Swiftmail {
    	// @param $host 邮件服务器地址
    	// @param $port 端口号
    	// @param $encryption_type 加密方式(例如:使用腾讯qq邮箱时此处填ssl,不加密不填写此项)
    	// @param $user 用户名
    	// @param $pwd 密码或授权码
    	// @param $subject 邮件主题
    	// @param $body 邮件内容
    	// @param $from 邮件来自邮箱号
    	// @param $from_name 邮件来自名称
    	// @param $to 收件人邮箱
    	public static function sendMail($to, $subject, $body, $encryption_type = null) {
    
    		$host = C('SMTP');
    		$port = C('MAIL_PORT'); 
    		$user = C('MAIL_USER'); 
    		$pwd = C('MAIL_PWD');  
    		$from = C('MAIL_FROM'); 
    		$from_name = C('MAIL_FROM_NAME');
    
    		Vendor('swiftmailer.lib.swift_required');
    
    		$transport=Swift_SmtpTransport::newInstance($host, $port, $encryption_type)
    				->setUsername($user)
    				->setPassword($pwd);
    
    		$mailer =Swift_Mailer::newInstance($transport);
    		$message=Swift_Message::newInstance()
    						->setSubject($subject)
    						->setFrom(array($from=>$from_name))
    						->setTo($to)
    						->setContentType("text/html")
    						->setBody($body);
    		$mailer->protocol='smtp';
    		$mailer->send($message);
    	}
    }
    

      

    控制器和方法(按需求确定位置)/Application/Home/Controller/IndexController.class.php

    <?php
    namespace HomeController;
    use ThinkController;
    use HomeCommonSwiftmail;
    
    class IndexController extends Controller {
    
        public function mail_send() {
        	$to = '472323087@qq.com';
        	$subject = 'SwiftMail测试标题';
        	$body = '<h1>SwiftMail演示</h1>这是dee对SwiftMail的测试内容';
    
        	try {
        		Swiftmail::sendMail($to, $subject, $body);
    				echo 'success';
    			} catch(Swift_RfcComplianceException $e) {
    				echo $e->getMessage();
    			}
        }
    }
    

      

    运行后显示 success

    收取邮件:

     

    打开邮件:

    参考:发送邮件Swift Mailer代替PHPmail

  • 相关阅读:
    C++中整型变量的存储大小和范围
    A1038 Recover the Smallest Number (30 分)
    A1067 Sort with Swap(0, i) (25 分)
    A1037 Magic Coupon (25 分)
    A1033 To Fill or Not to Fill (25 分)
    A1070 Mooncake (25 分)
    js 获取控件
    C#代码对SQL数据库添加表或者视图
    JS 动态操作表格
    jQuery取得下拉框选择的文本与值
  • 原文地址:https://www.cnblogs.com/dee0912/p/5451564.html
Copyright © 2011-2022 走看看