SuiteCRM

[기술지원] 이메일 발송 테스트 오류

 

 

SuiteCRM에 이메일 계정을 등록할 때, 발송 테스트를 합니다. 이 때 여러가지 오류가 발생할 수 있습니다. 보통은 메일 서버의 권한 설정 등으로 조치가 가능하지만 그래도 계속 오류가 발생하면 Linux Command Line에서 “이메일 발송 테스트“를 진행 합니다.
만일 이메일 발송 테스트가 정상인데도 불구하고 발송 테스트 오류가 발생하면 SELinux 설정을 확인 하세요.
SELinux 설정

#— SELinux 설정 확인
getsebool httpd_can_sendmail                            #— 설정값이 on 이어야 합니다.
getsebool httpd_can_network_connect                   #— 설정값이 on 이어야 합니다.
#— 이메일 발송을 위한 SELinux 설정
setsebool -P httpd_can_sendmail 1
setsebool -P httpd_can_network_connect 1

2017.11.20 ~ 2017.11.20, ver 0.01

[기술지원] crontab -e -u nginx 등록시 오류

 

 

SuiteCRM을 설치한 후 스케쥴러를 정상 동작하도록 설정하려면 crontab을 설정하여야 합니다.
오류 메시지

[root@demo html]# crontab -e -u nginx
no crontab for nginx – using an empty one
crontab: installing new crontab
“/tmp/crontab.wdqUAj”:1: bad hour
errors in crontab file, can’t install.
Do you want to retry the same edit? n
crontab: edits left in /tmp/crontab.wdqUAj


발생 원인
nginx 사용자가 linux로 로그인할 수 있도록 허용되어 있지 않아 발생하는 문제 입니다.
해결 방안
두가지 방법인 있는데 첫번째 방법은 nginx 사용자로 Linux로 로그인할 수 있도록 설정하는 방법이며 두번째 방법은 root 사용자로 crontab을 등록하고 crontab이 실행될 때 nginx 사용자 권한으로 실행되도록 하는 방법 입니다. 여기서는 첫번째 방법을 설명합니다.
vi  /etc/passwd
    nginx:x:996:994:Nginx web server:/var/lib/nginx:/sbin/nologin          #— 이 라인을 삭제
    nginx:x:996:994:Nginx web server:/var/lib/nginx:/bin/bash              #— 이 라인을 추가 
2017.11.20 ~ 2017.11.20, ver 0.01

[기술지원] 이메일 발송 테스트

 

 

SuiteCRM의 이메일 발송을 Linux Commnad Line에서 테스트할 수 있습니다.
SuiteCRM의 최상위 폴더에 emailTest.php 파일을 생성 합니다.
php  emailTest.php 명령을 실행하여 이메일 발송을 테스트 합니다.
emailTest.php

<?php
require_once ‘include/phpmailer/class.phpmailer.php’;
require_once ‘include/phpmailer/class.smtp.php’;
 
$mail = new PHPMailer;
 
$mail->SMTPDebug=14;
$mail->Debugoutput=’html’;
$mail->isSMTP();
$mail->Host = ‘smtp.gmail.com’;                                     //— Email Server
$mail->SMTPAuth = true;                                               //— true. SMTP 인증을 사용함
$mail->Username = ‘~@gmail.com’;                                 //— Email Server 로그인 아이디
$mail->Password = ‘~’;                                                //— Email Server 로그인 비밀번호
$mail->SMTPSecure = ‘tls’;                                            //— TLS, SSL 사용 여부
$mail->Port = 587;                                                     //— Port. SMTP (25), TLS (587)
 
$mail->From = ‘~@gmail.com’;                                      //— 보낸사람 이메일 주소
$mail->FromName = ‘OBCon Test’;                                  //— 보낸사람 이름
$mail->addReplyTo(‘~@gmail.com’, ‘OBCon Test’);               //— 회신 받을 사람의 이메일 주소와 이름
$mail->addAddress(‘~@jopenbusiness.com’, ‘Consult’);          //— 받는사람 이메일 주소와 이름
//$mail->addCC(‘cc@example.com’);                               //— 참조
//$mail->addBCC(‘bcc@example.com’);                            //— 숨은 참조
 
$mail->WordWrap = 50;
//$mail->addAttachment(‘/var/tmp/file.tar.gz’);                    //— 첨부 파일
//$mail->addAttachment(‘/tmp/image.jpg’, ‘new.jpg’);            //— 첨부 파일
$mail->isHTML(true);
 
$mail->Subject = ‘OBCon Test Email’;                              //— 이메일 제목
$mail->Body    = ‘This is the HTML message body <b>in bold!</b>’;          //— 이메일 본문 (html)
$mail->AltBody = ‘This is the body in plain text for non-HTML mail clients’;   //— 이메일 본문 (text)
 
if(!$mail->send()) {
    echo ‘Message could not be sent.’;
    echo ‘Mailer Error: ‘ . $mail->ErrorInfo;
} else {
    echo ‘Message has been sent’;
}
?>

 

 

2017.11.20 ~ 2017.11.20, ver 0.01