Suche…


Bemerkungen

In CodeIgniter 3 müssen Sie den Parameter angeben:

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

Ohne geht es einfach nicht.

Wenn Sie sich nicht für neue Zeilen interessieren und CodeIgniter 2 verwenden, ist dieser Konfigurationsparameter optional.

Laden Sie die E-Mail-Bibliothek

Zuerst müssen Sie die E-Mail-Bibliothek laden.

Tun Sie dies entweder in der Controller-Datei, die die E-Mail sendet:

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

Oder laden Sie es global in die Datei autoload.php im Ordner config:

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

Wenn Sie dort sind, möchten Sie möglicherweise den E-Mail-Helper laden, wenn Sie einige der in CodeIgniter integrierten Kurzbefehle verwenden möchten:

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

Der E-Mail-Helfer kann auf ähnliche Weise wie die E-Mail-Bibliothek in die Controller-Datei geladen werden:

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

Legen Sie Ihre E-Mail-Konfigurationsparameter fest

Erstellen Sie im Ordner application / config eine neue Datei mit dem Namen email.php

Legen Sie die Parameter für das Senden von E-Mails fest. Diese werden geladen, wenn Sie Ihre E-Mail senden.

$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

Erstellen Sie Ihre E-Mail

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

Bei der Von-Methode ist der erste Parameter die E-Mail-Adresse, von der aus Sie senden. Der zweite Parameter ist der Name, den der Empfänger sehen soll.

In der Methode "An" legen Sie fest, an wen die E-Mail gesendet wird.

Die "Betreff" -Methode definiert den Betreff der E-Mail.

Die "Message" -Methode legt fest, was sich im Textkörper Ihrer E-Mail befindet.

Bei diesen Daten kann es sich um Daten handeln, die von einem Benutzer an Ihre Site gesendet wurden. Möglicherweise haben Sie hier eine Variable mit gebuchten Daten. So sehen sie vielleicht eher so aus:

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

Senden Sie Ihre E-Mail

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

Senden Sie eine HTML-E-Mail

Sie möchten jedoch nicht nur eine reine Text-E-Mail. Sie möchten eine hübsche HTML-E-Mail.

Legen Sie Ihre Konfigurationsdatei als HTML fest:

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

Wenn Sie Daten (wie zum Beispiel einen Benutzernamen) an die HTML-E-Mail übergeben möchten, fügen Sie diese in ein Array ein:

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

Richten Sie dann beim Senden Ihre "Nachricht" auf eine Ansicht. Dann geben Sie Ihr Datenfeld an:

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

Erstellen Sie in Ihrem Anwendungs- / Ansichtsordner Ihre Ansicht.

In diesem Fall heißt es 'new_user.php'.

Sie können dies beliebig gestalten. Hier ein kurzes Beispiel:

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

Kontakt Formular

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

    }

Ansichten (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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow