Sök…


Anmärkningar

I CodeIgniter 3 måste du inkludera parametern:

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

Det fungerar helt enkelt inte utan det.

Om du inte bryr dig om nya linjer och använder CodeIgniter 2 är denna konfigurationsparameter valfri.

Ladda e-postbiblioteket

Först måste du ladda e-postbiblioteket.

Gör detta antingen i kontrollfilen som skickar e-postmeddelandet:

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

Eller ladda den globalt i autoload.php-filen i konfigurationsmappen:

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

När du är där kanske du vill ladda e-posthjälpen om du vill använda några av CodeIgniters inbyggda genvägar:

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

E-posthjälpen kan laddas i Controller-filen på liknande sätt som e-postbiblioteket:

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

Ställ in dina e-postkonfigurationsparametrar

Skapa en ny fil i applikations- / konfigurationsmappen med namnet email.php

Ställ in parametrarna för att skicka e-post. Dessa laddas när du skickar din e-post.

$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

Skapa din e-post

$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!');

I metoden "från" är den första parametern den e-postadress du skickar från, den andra parametern är det namn du vill att mottagaren ska se.

I metoden "till" definierar du vem e-postmeddelandet ska skickas till.

Metoden 'ämne' definierar e-postens ämne.

Metoden 'meddelande' definierar vad som kommer att finnas i kroppen på din e-post.

Någon av dessa kan vara en data som skickades till din webbplats av en användare. Så du kan ha en variabel här innehållande publicerade data. Så de kan se mer ut så här:

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

Skicka din e-post

$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.";
}

Skicka en HTML-e-post

Men du vill inte bara ha en vanlig e-postmeddelande. Du vill ha en ganska html-e-post.

Ställ in din konfigurationsfil som html:

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

Om du vill skicka data (som ett användarnamn till exempel) till html-e-postmeddelandet, lägg dem i en matris:

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

Peka sedan "meddelandet" mot en vy när du skickar. Skicka sedan din dataarray till den:

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

Skapa din vy i din applikations- / vymapp.

I det här fallet heter den 'new_user.php'.

Du kan utforma det ändå du vill. Här är ett snabbt exempel:

<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>

Kontaktformulär

Controller (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');
        }

    }

Visningar (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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow