2013-06-06 3 views
5

Ich habe meinen Controller eingerichtet und mein Kontaktformular eingerichtet. Aber wenn ich auf meiner Kontaktseite auf "Senden" klicke, erhalte ich keine Fehler, aber ich erhalte keine E-Mail. Kann mir jemand helfen, herauszufinden, warum ich die E-Mail nicht wirklich erhalte? Ich schätze jede Hilfe. Hier ist mein Code für den Controller:Wie schicke ich erfolgreich eine E-Mail in einem Kontaktformular über CodeIgniter?

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Home extends CI_Controller { 
    public function index() 
    { 
     $this->template->build('home'); 
    } 

    public function email() { 
     $name = $this->input->post('name'); 
     $email = $this->input->post('email'); 
     $phone_number = $this->input->post('phone_number'); 
     $message = $this->input->post('message'); 
     $this->load->library('email'); 
     $this->email->from($email, 'Your Name'); 
     $this->email->to('[email protected]'); 
     $this->email->cc('[email protected]'); 
     $this->email->bcc('[email protected]'); 
     $this->email->subject('Email Test'); 
     $this->email->message(
      'My name is'.$name.', Im testing this email class. My email is '.$email. '. My Phone number is '.$phone_number. 
     ' This is my message '.$message. ' Thanks!!' 
     ); 
     $this->email->send(); 
     echo $this->email->print_debugger(); 
     $this->template->build('home'); 
    } 
} 

Und hier ist mein Code für meine Kontaktseite Ansicht:

<div class="inner-content" id="contact-content"> 

    <title>CSS3 Contact Form</title> 
    <div id="contact"> 
    <h1>Send an email</h1> 
    <form method="post" action="/home/email"> 
     <fieldset> 
     <label for="name">Name:</label> 
     <input name="name" id="name" type="text" placeholder="Enter your full name"> 
     <label for="email">Email:</label> 
     <input name="email" id="email" type="email" placeholder="Enter your email address"> 
     <label for="message">Message:</label> 
     <textarea name="message" id="message" placeholder="Type your message here..."></textarea> 
     <input type="submit" value="Send message"> 
     </fieldset> 
    </form> 
    </div> 
</div> 
+1

Zuerst stellen Sie bitte sicher, dass Sie SMTP-Server eingerichtet haben, um E-Mails korrekt zu senden. –

+0

Was gibt der Debugger aus? –

+0

Der Ausgang ist genau das: Ihre Nachricht unter Verwendung des folgenden Protokolls wurde erfolgreich gesendet: mail Von: "Ihr Name" Return-Path: Cc: [email protected] Bcc: sie @ their- example.com Reply-To: "[email protected]" X-Sender: [email protected] X-Mailer: CodeIgniter X-Priority: 3 (normal) Message-ID: <51b0de09bea00 @ gd. com> Mime-Version: 1.0 Inhaltstyp: text/plain; charset = utf-8 Content-Transfer-Encoding: 8bit =? utf-8? Q? Email_Test? = Mein Name isdfdfdf, ich teste diese Email-Klasse. Meine E-Mail-Adresse lautet [email protected] Meine Telefonnummer ist Dies ist meine Nachricht dfdfdfdfdfsdafsafsdfsfdsfdsfsdf Danke !! –

Antwort

1

php_openssl.dll in php.ini Datei aktivieren und versuchen, gmail. Die Antwort von Pascal Spruit oder Omade wird funktionieren. Vergessen Sie nicht, Ihren lokalen Server nach der Bearbeitung in der Datei php.ini neu zu starten.

0

Wenn es hilft versuchen E-Mail-Klasse zu konfigurieren erste

$config['protocol'] = 'sendmail'; 
$config['mailpath'] = '/usr/sbin/sendmail'; 
$config['charset'] = 'iso-8859-1'; 
$config['wordwrap'] = TRUE; 

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

Try Um diesen Code um email-> send() Funktion hinzuzufügen, um zu sehen, wie die Antwort ist

Änderung $this->email->send(); Um

if (! $this->email->send()) 
{ 
    echo 'Some error in sending email'; 
} 

Wenn der Fehler String kein Echo dann ist Problem nicht mit CI, seine wahrscheinlich mit Mail-Server.

+0

Vielen Dank für Ihren Vorschlag, aber ich erhalte keine Ausgabe. Wenn ich auf "Senden" klicke, erscheint die Firefox-Seite mit folgenden Angaben: Dokument abgelaufen Dieses Dokument ist nicht mehr verfügbar. Das angeforderte Dokument ist im Cache von Firefox nicht verfügbar. –

+1

Versuchen Sie, eine E-Mail an Google Mail zu senden. Einige Server blockieren möglicherweise die Test-E-Mails. –

+0

Ich habe es an Google Mail gesendet. Es hat immer noch nicht funktioniert. –

0

Try gmail mit

$config = Array(
     'protocol' => 'smtp', 
     'smtp_host' => 'ssl://smtp.googlemail.com', 
     'smtp_port' => '465', 
     'smtp_user' => '[email protected]', 
     'smtp_pass' => 'password', 
     'mailtype' => 'html', 
     'starttls' => true, 
     'newline' => "\r\n" 
    ); 

$this->load->library('email', config); 
$this->email->from('[email protected]', 'George'); 
$this->email->to('[email protected]'); 
$this->email->subject('hey this is an email'); 
$this->email->message('this is the content of the email'); 
$this->email->send(); 
echo $this->email->print_debugger(); 
1
$config = Array(
     'protocol' => 'smtp', 
     'smtp_host' => 'ssl://smtp.googlemail.com', 
     'smtp_port' => '465', 
     'smtp_user' => '[email protected]', 
     'smtp_pass' => 'yourpassword', 
     'mailtype' => 'html', 
     'starttls' => true, 
     'newline' => "\r\n" 
    ); 

$this->load->library('email', $config); 
$this->email->from('[email protected]', 'Jodie'); 
$this->email->to('[email protected]'); 
$this->email->subject('testing email'); 
$this->email->message('This shows the email worked'); 
$this->email->send(); 
echo $this->email->print_debugger(); 
0

Ich steckte auch mit diesem gleichen Problem, aber ich bin eine Sache herauszufinden, alles geht erfolgreich auf Google Mail, aber nur E-Mail geht nicht.

wenn ich sende $email = $this->input->post('useremail'); das ist nicht geht auf Google Mail. Es ist Show-Mail senden erfolgreich oder was auch immer Sie übergeben "wenn" Bedingung, aber Mail nicht in Mailbox kommen. Aber wenn ich etwas anderes passiere, wie das Telefon-Passwort oder irgendwas anderes, dann ist alles erfolgreich. Gibt es eine Einschränkung in CI oder PHP für E-Mail. Weil ich HTML-Inhalt erfolgreich auf Server sende, aber nur E-Mail nicht geht. Eine Sache noch alles senden einschließlich E-Mail, aber durch local-Host, aber ich bin auf meiner Website auf hostinger und konfigurieren alles und alles gut gehen, aber nur E-Mail nicht weitergeben Formular,

Wenn jemand eine Idee über diese haben- wie man E-Mail auf Kontaktformular einbindet, dann plädieren Sie Ihr Wissen mit mir.

+0

Ich bin noch nicht vollständige Lösung, aber wenn Sie überprüfen möchten, dann kommentieren Sie Ihre $ email = $ this-> input-> post ('email "); und entfernen Sie auch Formular Nachrichtenteil, dann überprüfen Sie, mein sein Sie erhalten Post auf Ihrer E-Mail-Box. –

Verwandte Themen