codeigniter
이메일 보내기
수색…
비고
CodeIgniter 3에서는 다음 매개 변수를 포함해야합니다.
$config['newline'] = "\r\n";
그것 없이는 작동하지 않습니다.
새로운 라인을 신경 쓰지 않고 CodeIgniter 2를 사용한다면이 설정 파라미터는 선택 사항입니다.
전자 메일 라이브러리로드
먼저 전자 메일 라이브러리를로드해야합니다.
전자 메일을 보낼 컨트롤러 파일에서 다음을 수행하십시오.
$this->load->library('email');
또는 config 폴더의 autoload.php 파일에서 전역 적으로로드하십시오.
$autoload['libraries'] = array('email');
거기에있는 동안 CodeIgniter에 내장 된 단축키 중 일부를 사용하려면 이메일 도우미를로드해야 할 수 있습니다.
$autoload['helper'] = array('email');
이메일 도우미는 이메일 라이브러리와 비슷한 방법으로 컨트롤러 파일에로드 할 수 있습니다.
$this->load->helper('email');
이메일 구성 매개 변수 설정
email.php라는 application / config 폴더에 새 파일을 만듭니다.
이메일 전송을위한 매개 변수를 설정하십시오. 이메일을 보내면로드됩니다.
$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!');
'보낸 사람'방법에서 첫 번째 매개 변수는 보내는 이메일 주소이고, 두 번째 매개 변수는 수신자가 보길 원하는 이름입니다.
'to'방법에서는 전자 메일을 보낼 사람을 정의합니다.
'subject'메소드는 전자 메일의 제목을 정의합니다.
'메시지'방법은 귀하의 이메일 본문에 포함될 내용을 정의합니다.
이러한 정보는 사용자가 사이트로 보낸 데이터 일 수 있습니다. 따라서 여기에 게시 된 데이터를 보유하는 변수가있을 수 있습니다. 그래서 그들은 다음과 같이 보일 것입니다 :
$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>