2016-04-17 3 views
-1

Я видел людей, использующих $mail->get_include_contents(), но я точно не знаю, как это работает.PHPMailer как передать переменную

Я хочу вести учетную запись по электронной почте. У меня есть шаблон php, html или tpl, который я хочу передать имя пользователя, случайный ключ, адрес электронной почты и т. Д. Подумайте, что я использую Smarty во всем моем проекте.

На моем gmail.php я получил:

$mail->msgHTML(file_get_contents(dirname(__FILE__).'/MailActivation.php'), $variables); 

Может кто-нибудь объяснить мне, как я могу это сделать?

ответ

0

Файлы включены на основе указанного пути к файлу или, если ни один не указан, указан путь include_path. Если файл не найден в include_path, включите, наконец, проверите собственный каталог вызывающего сценария и текущий рабочий каталог перед сбоем. Конструкция include будет выдавать предупреждение, если он не может найти файл; это другое поведение от require, которое испустит фатальную ошибку.

$mail->Body = get_include_contents('sample.php', $variable); 

sample.php

<table width='600px' cellpadding='0' cellspacing='0'> 
<tr><td bgcolor='#eeeeee'><img src='logo.png' /></td></tr> 
<tr><td bgcolor='#ffffff' bordercolor='#eeeeee'> 
<div style='border:1px solid #eeeeee;font-family:Segoe UI,Tahoma,Verdana,Arial,sans-serif;padding:20px 10px;'> 
<p>Variable one is <?php echo $one; ?>.</p> 
<p>Variable two is <?php echo $two; ?>.</p> 
<p>Thanks</p> 
</div> 
</td></tr> 
</table> 
1

¡Наконец!

Это результат:

<?php 

    date_default_timezone_set('Etc/UTC'); 

    require(dirname(__FILE__).'/../PHPMailerAutoload.php'); 
    require_once (dirname(__FILE__).'/../../controller/SignUpController.php'); 

    $variables = [$username, $email, $randomkey]; 

    //Create a new PHPMailer instance 
    $mail = new PHPMailer; 

    //Tell PHPMailer to use SMTP 
    $mail->isSMTP(); 

    //Enable SMTP debugging 
    // 0 = off (for production use) 
    // 1 = client messages 
    // 2 = client and server messages 
    $mail->SMTPDebug = 0; 

    //Ask for HTML-friendly debug output 
    $mail->Debugoutput = 'html'; 

    //Set the hostname of the mail server 
    $mail->Host = 'smtp.gmail.com'; 
    // use 
    // $mail->Host = gethostbyname('smtp.gmail.com'); 
    // if your network does not support SMTP over IPv6 

    //Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission 
    $mail->Port = 587; 

    //Set the encryption system to use - ssl (deprecated) or tls 
    $mail->SMTPSecure = 'tls'; 

    //Whether to use SMTP authentication 
    $mail->SMTPAuth = true; 

    //Username to use for SMTP authentication - use full email address for gmail 
    $mail->Username = "your_email"; 

    //Password to use for SMTP authentication 
    $mail->Password = "your_password_email"; 

    //Set who the message is to be sent from 
    $mail->setFrom('user_email_from', 'title_to_display'); 

    //Set an alternative reply-to address: it's optional 
    //$mail->addReplyTo('user_email_reply', 'user_email_name'); 

    //Set who the message is to be sent to 
    $mail->addAddress($email, $firstname . " " . $lastname); 

    //Set the subject line 
    $mail->Subject = 'Subject'; 

// Settin variables  
    $message = file_get_contents(dirname(__FILE__).'/MailActivation.html'); 
    $message = str_replace('%testusername%', $username, $message); 
    $message = str_replace('%testemail%', $email, $message); 
    $message = str_replace('%testrandomkey%', $randomkey, $message); 

    $mail->msgHTML($message); 

    //Replace the plain text body with one created manually 
    //$mail->AltBody = 'This is a plain-text message body'; 

    //Attach an image file 
    //$mail->addAttachment('images/phpmailer_mini.png'); 

// For sending an image inline 
    $mail->AddEmbeddedImage(dirname(__FILE__).'/images/frontimage.jpg', 'front', 'images/frontimage.jpg'); 

    //send the message, check for errors 
    if (!$mail->send()) { 
     echo "Mailer Error: " . $mail->ErrorInfo; 
    } else { 


      echo "Message sent!"; 
     } 
?> 

В моей ActivationTemplate.html я просто создать HTML-файл и где я хотел вставить переменные я просто положить:

Lorem ipsum %testusername% dolor sit amet, consectetur adipiscing elit. Integer nulla elit, mattis non leo in, ornare interdum ante. Proin eget velit purus. Sed convallis lectus sed libero ornare, sit amet pharetra nisi facilisis. Cras fermentum nulla quis purus egestas, in accumsan nisl dictum. Donec in nisi vel enim pretium posuere at nec ante. Mauris tempus velit vel urna commodo accumsan. %testemail% 

Я думаю, что это Безразлично Не важно, используете ли вы шаблон php или html.

Смежные вопросы