thinkphp邮件发送模版怎么实现 20

已用Swift-5.1.0实现了邮件发送功能,代码如下:require(VENDOR_PATH.'Swift-5.1.0/lib/swift_required.php')... 已用Swift-5.1.0实现了邮件发送功能,
代码如下:
require (VENDOR_PATH.'Swift-5.1.0/lib/swift_required.php');
$title = $titles ? $titles : $GLOBALS['email_title'];
$transport = \Swift_SmtpTransport::newInstance($GLOBALS['email_server'],$GLOBALS['email_port'])
->setUsername($GLOBALS['email_user'])
->setPassword($GLOBALS['email_pass']);
$mailer = \Swift_Mailer::newInstance($transport);
$message = \Swift_Message::newInstance()
//Give the message a subject
->setSubJect($title) //消息主题,标题
->setFrom(array($GLOBALS['email_user']=>$GLOBALS['email_name'])) //邮件来源
->setTo($setTo) //设置地址信息,发送目标邮箱地址
->setContentType('text/html')
->setCharset('utf-8')
->setBody($body); //发送内容
$result = $mailer->send($message);
if($result == 1)
{
return true;
}
return false;
但只是单纯的对文本进行发送,我现在想用实现的功能是发送模版固定好格式,然后再传值进来把模版里面的值进行相应的修改最后才进行邮件发送,望各位大神指点下,(最好是实现的功能代码)谢谢!
展开
 我来答
书飞凝683
2016-06-02 · TA获得超过1518个赞
知道大有可为答主
回答量:2250
采纳率:83%
帮助的人:460万
展开全部

第一步:准备PHPMailer

使用PHPMailer发送邮件,首先下载个PHPMailer

将下载的PHPMailer放到ThinkPHP文件夹里面的ThinkPHPExtendVendor

第二步:配置配置文件

修改conf.php文件

邮件配置:

//邮件配置

    'THINK_EMAIL' => array(

       'SMTP_HOST'   => 'smtp.163.com', //SMTP服务器

       'SMTP_PORT'   => '465', //SMTP服务器端口

       'SMTP_USER'   => 'ihtxt@163.com', //SMTP服务器用户名

       'SMTP_PASS'   => 'ihtxt.com', //SMTP服务器密码

       'FROM_EMAIL'  => 'ihtxt@163.com', //发件人EMAIL

       'FROM_NAME'   => '爱红电子书', //发件人名称

       'REPLY_EMAIL' => 'ihtxt@163.com', //回复EMAIL(留空则为发件人EMAIL)

       'REPLY_NAME'  => '爱红电子书', //回复名称(留空则为发件人名称)

    ), 

注:推荐使用163邮件,不要使用QQ邮箱,邮件配置一定要正确

第三步:将邮件发送函数放到common.php文件

可以将该函数放到ThinkPHPCommoncommon.php。也可以放到你生成的项目文件的Commoncommon.php。不过只能放到一个地方,否则就会报函数重定义错误。

/**

 * 系统邮件发送函数

 * @param string $to    接收邮件者邮箱

 * @param string $name  接收邮件者名称

 * @param string $subject 邮件主题 

 * @param string $body    邮件内容

 * @param string $attachment 附件列表

 * @return boolean 

 */

 function think_send_mail($to, $name, $subject = '', $body = '', $attachment = null){

    $config = C('THINK_EMAIL');

    vendor('PHPMailer.class#phpmailer'); //从PHPMailer目录导class.phpmailer.php类文件

    $mail             = new PHPMailer(); //PHPMailer对象

    $mail->CharSet    = 'UTF-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码

    $mail->IsSMTP();  // 设定使用SMTP服务

    $mail->SMTPDebug  = 0;                     // 关闭SMTP调试功能

                                               // 1 = errors and messages

                                               // 2 = messages only

    $mail->SMTPAuth   = true;                  // 启用 SMTP 验证功能

    $mail->SMTPSecure = 'ssl';                 // 使用安全协议

    $mail->Host       = $config['SMTP_HOST'];  // SMTP 服务器

    $mail->Port       = $config['SMTP_PORT'];  // SMTP服务器的端口号

    $mail->Username   = $config['SMTP_USER'];  // SMTP服务器用户名

    $mail->Password   = $config['SMTP_PASS'];  // SMTP服务器密码

    $mail->SetFrom($config['FROM_EMAIL'], $config['FROM_NAME']);

    $replyEmail       = $config['REPLY_EMAIL']?$config['REPLY_EMAIL']:$config['FROM_EMAIL'];

    $replyName        = $config['REPLY_NAME']?$config['REPLY_NAME']:$config['FROM_NAME'];

    $mail->AddReplyTo($replyEmail, $replyName);

    $mail->Subject    = $subject;

    $mail->AltBody    = "为了查看该邮件,请切换到支持 HTML 的邮件客户端"; 


    $mail->MsgHTML($body);

    $mail->AddAddress($to, $name);

    if(is_array($attachment)){ // 添加附件

        foreach ($attachment as $file){

            is_file($file) && $mail->AddAttachment($file);

        }

    }

    return  $mail->Send() ? true : $mail->ErrorInfo;

 }

第四步:使用该函数发送邮件

 $r = think_send_mail('要发送的邮箱','发送人名称,即你的名称','文件标题','邮件内容');

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式