把 common/config/main-local.php 下的 mailer 注释掉:
          'mailer'=>[
                   'class'=>'yii\swiftmailer\Mailer',
                   'viewPath'=>'@common/mail',
                   'useFileTransport'=>false,
                   'transport'=>[
                                    'class'=>'Swift_SmtpTransport',
                                    'host'=>'',                                              //自己申请邮箱时的服务器
                                    'username'=>'',                                     //申请时的账号
                                    'password'=>'',                                     //申请时的密码
                                    'port'=>'25',                                           //端口
                                    'encryption'=>'tls'                                  //一种加密方式,报错时删除它再试试(我这里就不支持这种加密方式)
                    ],
                   'messageConfig'=>[
                                    'charset'=>'UTF-8',                                                          //设置字符集
                                    'from'=>['???'=>???]                   //给发送的邮箱起个别名
                    ]
          ]
   
    在任意控制下创建一个方法:
          $file_size=filesize(路径);
            $fp=fopen(路径,'r');               //只读模式打开
            $buff=1024;
            $file_count=0;
            $file_con='';
            while(!feof($fp)&&file_count<$file_size){
                  $file_con.=fread($fp,$buff);                                             //因为文件每读取一次只要不关闭或重置,指针就会停在上次最后读取的位置。下次继续读取。所以长度不必改变。
                  $file_count+=$buff;
            }
            fclose($fp);
            $mail=\Yii::$app->mailer->compose();
            $mail->attachContent($file_con,['filename'=>'demo.docx','contentType'=>'application/octet-stream']);
                                               
//附件内容            //附件名称                 //文件类型
            $mail->setTo(收件人账号);
            $mail->setSubject("标题");
            $mail->setHtmlBody("内容");
            $mail->send();                                                                   
//发送

            unset($file_con);                                                                 //销毁附件内容字符串

05-11 20:54