«   2018/07   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
Archives
Today
42
Total
1,122,792
안정적인 DNS서비스 DNSEver
관리 메뉴

Blue Breeze

CodeIgniter Email SMTP 451 Error 본문

Language/PHP

CodeIgniter Email SMTP 451 Error

푸른바람 C/H 2015.01.30 08:30

PHP

CodeIgniter


SMPT 451 오류는 인터넷 메일 메시지의 모든 라인과 라인 피드(LF) 및 캐리지 리턴 (CR)을 준수하지 않고 메일을 보내려 할때 발생하는 오류 코드로 규칙을 준수하지 않을 경우 822bis 섹션 2.3의 위반으로 메일 서버에 의해 거부 된다.

$config['mailtype'] = 'html';  
$config['charset']='utf-8';
$config['crlf'] = "\r\n";
$config['newline']="\r\n";
$config['wordwrap'] = TRUE;

switch( 'smtp' )
{
	case 'gmail':
		$config['protocol']='smtp';  
		$config['smtp_host']='ssl://smtp.googlemail.com';  
		$config['smtp_port']='465';
		$config['smtp_timeout']='30';  
		$config['smtp_user']='userid@gmail.com';  
		$config['smtp_pass']='password';
		break;
	case 'nate':
		$config['protocol']='smtp';  
		$config['smtp_host']='ssl://smtp.mail.nate.com';  
		$config['smtp_port']='465';  
		$config['smtp_timeout']='30';  
		$config['smtp_user']='userid@empal.com';  
		$config['smtp_pass']='password';
		break;
	case 'naver':
		// 네이버 > 메일 > 환경설정 > POP3/SMTP 사용설정 필요
		$config['protocol']='smtp';  
		$config['smtp_host']='ssl://smtp.naver.com';  
		$config['smtp_port']='465';  
		$config['smtp_timeout']='30';  
		$config['smtp_user']='userid@naver.com';  
		$config['smtp_pass']='password';
		break;
	case 'yahoo':
		$config['protocol']='smtp';  
		$config['smtp_host']='ssl://smtp.mail.yahoo.com';  
		$config['smtp_port']='465';  
		$config['smtp_timeout']='30';  
		$config['smtp_user']='userid@yahoo.com';  
		$config['smtp_pass']='password';
		break;
	case 'smtp':
		$config['protocol']='smtp';
		$config['smtp_host']='mail.domain.com';
		$config['smtp_port']='25';
		$config['smtp_timeout']='100';
		$config['smtp_user']='';
		$config['smtp_pass']='';
		break;
	case 'sendmail':	/* follow default */
		$config['protocol'] = 'sendmail';
		$config['mailpath'] = '/usr/sbin/sendmail';
	default:
		break;
}

만약 위 방법으로도 451 에러가 발생한다면 코드이그나이터 Email Lib를 확장해서 문제를 해결

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * 
 * @author stepone.kr@gmail.com
 *
 * SMTP 451 Error 해결
 * http://stratosprovatopoulos.com/web-development/php/smtp-451-error-codeigniter/
 */
class MY_Email extends CI_Email {
	
	protected function _prep_q_encoding($str, $from = FALSE)
	{
		$str = str_replace(array("\r", "\n"), array('', ''), $str);

		// Line length must not exceed 76 characters, so we adjust for
		// a space, 7 extra characters =??Q??=, and the charset that we will add to each line
		$limit = 75 - 7 - strlen($this->charset);

		// these special characters must be converted too
		$convert = array('_', '=', '?');

		if ($from === TRUE)
		{
			$convert[] = ',';
			$convert[] = ';';
		}

		$output = '';
		$temp = '';

		for ($i = 0, $length = strlen($str); $i < $length; $i++)
		{
			// Grab the next character
			$char = substr($str, $i, 1);
			$ascii = ord($char);

			// convert ALL non-printable ASCII characters and our specials
			if ($ascii < 32 OR $ascii > 126 OR in_array($char, $convert))
			{
				$char = '='.dechex($ascii);
			}

			// handle regular spaces a bit more compactly than =20
			if ($ascii == 32)
			{
				$char = '_';
			}

			// If we're at the character limit, add the line to the output,
			// reset our temp variable, and keep on chuggin'
			if ((strlen($temp) + strlen($char)) >= $limit)
			{
				$output .= $temp."\n";
				$temp = '';
			}

			// Add the character to our temporary line
			$temp .= $char;
		}

		$str = $output.$temp;

		// wrap each line with the shebang, charset, and transfer encoding
		// the preceding space on successive lines is required for header "folding"
		$str = trim(preg_replace('/^(.*)$/m', ' =?'.$this->charset.'?Q?$1?=', $str));

		return str_replace(array("\n"), array("\r\n"), $str);
	}
}

'Language > PHP' 카테고리의 다른 글

window xampp 속도문제 - 가속엔진이 없을 경우  (0) 2015.05.29
PHP han2eng  (0) 2015.03.05
CodeIgniter Email SMTP 451 Error  (0) 2015.01.30
CodeIgniter Rest Server Format jsonp,cvs Error  (0) 2014.12.12
CodeIgniter Straight Model  (0) 2014.12.09
PHP 비기너 동영상 튜토리얼  (0) 2014.10.29
0 Comments
댓글쓰기 폼