Hier ist mein Code, in dem eine E-Mail bei der Benutzeranmeldung senden. Es dauert 5 Minuten oder länger, bis jede Mail die E-Mail des Benutzers erreicht. Ich weiß nicht, warum E-Mails so viel Zeit brauchen, um sie zu erreichen. Wenn ich eine E-Mail mit der gleichen Funktion sendEmail() senden nicht mit einem Bestätigungscode nur mit einem einfachen Text. Jetzt dauert es 1 Minute oder 1 n halbe Minuten, um die Benutzer-E-Mail zu erreichen.Senden von E-Mail mit Codeigniter Nehmen so viel Zeit
Manchmal sendet es nicht einmal eine E-Mail, wenn ich den Bestätigungscode am Ende des Links sende.
Ich weiß nicht, wie man die E-Mail mit SMTP sendet. Ich habe einige Beispiele gefunden, in denen sie ihren Domänennamen zu smtp_host, email, password hinzufügen, welche E-Mail mit der Domäne erstellt wird. Ich habe das gleiche getan, aber nichts passiert mit meiner E-Mail senden. Es ist fast identisch mit diesem auch, ob ich SMTP verwende oder nicht.
Das ist meine Funktion Name sendEmail (), die ich das Modell zum Senden von E-Mails erstellt haben. Der Grund, warum ich diese Funktion im Modell erstellt habe, weil ich auch E-Mails von anderen Controllern senden muss. Ich nicht, wenn es ein Problem beim Senden von E-Mails sein könnte
Bitte beachten Sie diese Funktion, wo ich falsch mache. oder wenn es einen anderen Weg gibt, bitte sagen Sie mir, wie Sie das tun. oder jede Art von Vorschlägen wird sehr hilfreich für mich sein.
-Controller
function index() {
//my validation rules are here
if ($this->form_validation->run() == TRUE) {
$data = $this->fetch_data_from_post();
$user_email = $data['email'];
$code = random_string('unique');
$verification_link = base_url('Home/verify/').$code;
$subject = "Confirmation Message";
$message = "Dear User,\n\n\nPlease click on Given below URL to verify your Email Address ".$verification_link." \n\n Once you click on the above link then your account will be verified and you will get an opportunity to login. See you soon,Thank You...!\n";
$email_sent = $this->Perfect_mdl->sendEmail($user_email,$subject,$message);
if($email_sent != 1){
$flash = '<div class="alert alert-danger">Opppssss Somthing went Wrong...</div>';
$this->session->set_flashdata('user_registration',$flash);
redirect('Home/signup');
}else{
$this->Perfect_mdl->_insert($data);
$flash = '<div class="alert alert-success">You are Successfully Registered... Please Check Your Email <b>'.$user_email.'</b> For Verification</div>';
$this->session->set_flashdata('user_registration',$flash);
redirect('Home/signup');
}
}
$data['meta_title'] = "Signup";
$data['services_name'] = $this->Perfect_mdl->getServices_home();
$dat['flash'] = $this->session->flashdata('user_registration');
$this->load->view('signup',$data);
}
Modell: -
function sendEmail($useremail,$subject,$message) {
$config = Array(
'protocol' => 'smtp',
'smtp_host' => 'smtp.mydomainname.com',
'smtp_port' => 25,
'smtp_user' => '[email protected]', // change it to yours
'smtp_pass' => 'vishal123456', // change it to yours
'mailtype' => 'html',
'charset' => 'iso-8859-1',
'crlf' => "\r\n",
'newline' => "\r\n",
'wordwrap' => TRUE
);
$this->load->library('email', $config);
$this->email->from('[email protected]', 'Company Name');
$this->email->to($useremail);
$this->email->subject($subject);
$this->email->message($message);
if($this->email->send()){
return "1";
}else{
return "0";
}
}
Warum verwenden Sie 'SMTP', senden Sie von einem anderen Server als dem, auf dem der Code läuft? Wenn es alles auf localhost ist, dann gibt es keine Notwendigkeit für "SMTP" – ArtisticPhoenix
Ich weiß nicht, wie SMTP funktioniert.der grund, warum ich smtp verwende, um so schnell wie möglich zu senden, um user-emails zu erreichen. Nein, ich benutze dies mit Server. –
entfernen Sie diese Smpt Config-Array..in Live-Host keine Notwendigkeit, diese smtp config .. – Mahesh