Поиск…


замечания

В CodeIgniter 3 вы должны включить параметр:

$config['newline'] = "\r\n";

Без него это не сработает.

Если вам не нужны новые строки, и вы используете CodeIgniter 2, этот параметр конфигурации является необязательным.

Загрузить библиотеку электронной почты

Сначала вам нужно загрузить библиотеку электронной почты.

Сделайте это либо в файле контроллера, который будет отправлять электронное письмо:

$this->load->library('email');

Или загрузите его по всему миру в файле autoload.php в папке config:

$autoload['libraries'] = array('email');

Пока вы там, вы можете загрузить помощник электронной почты, если хотите использовать некоторые встроенные ярлыки CodeIgniter:

$autoload['helper'] = array('email');

Помощник электронной почты может быть загружен в файл контроллера аналогично электронной почте:

$this->load->helper('email');

Задайте параметры конфигурации электронной почты

Создайте новый файл в папке application / config с именем email.php

Задайте параметры отправки электронной почты. Они будут загружаться при отправке электронной почты.

$config['newline'] = "\r\n"; //You must use double quotes on this one
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'ssl://smtp.gmail.com'; //Change for your specific needs
$config['smtp_port'] = 465; //Change for your specific needs
$config['smtp_user'] = '[email protected]'; //Change for your specific needs
$config['smtp_pass'] = 'yourpassword'; //Change for your specific needs
$config['charset'] = 'iso-8859-1';
$config['mailtype'] = 'text'; //This can be set as 'html' too

Создать свой адрес электронной почты

$this->email->from('[email protected]', 'Tom Webmaster');
$this->email->to('[email protected]', 'Freddie Fakeperson');
$this->email->subject('Your Account Is Active');
$this->email->message('Welcome to our new site!');

В методе «from» первым параметром является адрес электронной почты, от которого вы отправляете, второй параметр - это имя, которое вы хотите видеть получателем.

В методе «to» вы определяете, кому отправляется электронное письмо.

Метод «subject» определяет тему электронной почты.

Метод «message» определяет, что будет в теле вашей электронной почты.

Любой из них может быть данными, которые были отправлены на ваш сайт пользователем. Таким образом, у вас может быть переменная, которая содержит размещенные данные. Поэтому они могут выглядеть примерно так:

$this->email->to($email, $username);

Отправить свой электронный адрес

$sent = $this->email->send();


//This is optional - but good when you're in a testing environment.
if(isset($sent)){
    echo "It sent!";
}else{
    echo "It did not send.";
}

Отправить HTML-адрес электронной почты

Но вы не просто хотите отправить текстовое электронное письмо. Вам нужен симпатичный html-адрес электронной почты.

Задайте свой файл конфигурации как html:

$config['mailtype'] = 'html';

Если вы хотите передать данные (например, имя пользователя) в html-адрес электронной почты, поместите их в массив:

$data = array('name' => $name, 
              'email' => $email,
              'phone' => $phone,
              'date' => $date);

Затем при отправке отправьте свое сообщение «сообщение». Затем передайте массив данных:

$this->email->message($this->load->view('new_user',$data, true));

Создайте свое представление в папке приложения / представления.

В этом случае он называется «new_user.php».

Вы можете в любом случае создать стиль. Вот краткий пример:

<html>
<head>
    <style type='text/css'>
        body {background-color: #CCD9F9;
             font-family: Verdana, Geneva, sans-serif}

        h3 {color:#4C628D}

        p {font-weight:bold}
    </style>
</head>
<body>

    <h3>Hi <?php echo $name;?>,</h3>
    <h3>Thanks for contacting us.</h3> 

    <p>You've taken your first step into a larger world.</p>   
    <p>We really appreciate your interest.</p>

</body>
</html>

Форма обратной связи

Контроллер (Pages.php)

public function contact()
{
    
    $this->load->library('email');
    $this->load->library('form_validation');

    //Set form validation
    $this->form_validation->set_rules('name', 'Name', 'trim|required|min_length[4]|max_length[16]');
    $this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|min_length[6]|max_length[60]');
    $this->form_validation->set_rules('message', 'Message', 'trim|required|min_length[12]|max_length[200]');

    //Run form validation
    if ($this->form_validation->run() === FALSE)
    {
        $this->load->view('contact');
    } else {

        //Get the form data
        $name = $this->input->post('name');
        $from_email = $this->input->post('email');
        $subject = $this->input->post('subject');
        $message = $this->input->post('message');

        //Web master email
        $to_email = '[email protected]'; //Webmaster email, who receive mails

        //Mail settings
        $config['protocol'] = 'smtp';
        $config['smtp_host'] = 'ssl://smtp.gmail.com';
        $config['smtp_port'] = '465';
        $config['smtp_user'] = '[email protected]'; // Your email address
        $config['smtp_pass'] = 'mailpassword'; // Your email account password
        $config['mailtype'] = 'html'; // or 'text'
        $config['charset'] = 'iso-8859-1';
        $config['wordwrap'] = TRUE; //No quotes required
        $config['newline'] = "\r\n"; //Double quotes required

        $this->email->initialize($config);                        

        //Send mail with data
        $this->email->from($from_email, $name);
        $this->email->to($to_email);
        $this->email->subject($subject);
        $this->email->message($message);
        
        if ($this->email->send())
        {
            $this->session->set_flashdata('msg','<div class="alert alert-success">Mail sent!</div>');

            redirect('contact');
        } else {
            $this->session->set_flashdata('msg','<div class="alert alert-danger">Problem in sending</div>');
            $this->load->view('contact');
        }

    }

Просмотры (contact.php)

<div class="container">
<h2>Contact</h2>
<div class="row">
    <div class="col-lg-6">
        <?php echo $this->session->flashdata('msg'); ?>
        <form action="<?php echo base_url('contact'); ?>" method="post">
        <div class="form-group">
            <input name="name" placeholder="Your name" type="text" value="<?php echo set_value('name'); ?>" class="form-control" />
            <?php echo form_error('name', '<span class="text-danger">','</span>'); ?>
        </div>
        <div class="form-group">
            <input name="email" placeholder="Your e-mail" type="text" value="<?php echo set_value('email'); ?>" class="form-control" />
            <?php echo form_error('email', '<span class="text-danger">','</span>'); ?>
        </div>
        <div class="form-group">
            <input name="subject" placeholder="Subject" type="text" value="<?php echo set_value('subject'); ?>" class="form-control" />
        </div>
        <div class="form-group">
            <textarea name="message" rows="4" class="form-control" placeholder="Your message"><?php echo set_value('message'); ?></textarea>
            <?php echo form_error('message', '<span class="text-danger">','</span>'); ?>
        </div>
        <button name="submit" type="submit" class="btn btn-primary" />Send</button>
        </form>
    </div>
</div>


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow