CyberPanel에서 SendGrid SMTP를 구성하는 방법

SendGrid는 이메일 서버를 관리할 필요 없이 이메일 전송을 가능하게 하는 클라우드 기반 SMTP 서비스입니다.

참고: 포트 25는 기본적으로 당사 VM에서 연결이 차단되어 있습니다 기본값으로. 포트 25를 열고 싶다면 Mail Bridge를 구매하고 구성하세요Starlight™ Manager에서.

WHM에서 SendGrid 이메일을 구성하려면 이 가이드를 사용하세요.

아래 단계를 따라 SendGrid 서비스와 이메일 시스템을 CyberPanel 측에서 도메인 이름에 맞게 구성하세요:

1. SendGrid에 가입하세요:

모든 연락처 정보를 입력한 후 “Continue”를 클릭하세요.

2. 브라우저의 새 탭으로 리디렉션되어 이메일 계정을 인증하게 됩니다. 이메일 계정으로 전송된 인증 코드를 복사하여 “Code” 필드에 입력한 후 “Verify”를 클릭하세요:

3. 휴대폰으로 전송된 인증 코드를 “Enter certification code” 필드에 입력하여 휴대폰 번호를 인증하고 “Verify”를 클릭하세요:

4. 이후 휴대폰 분실이나 인증 기기에 접근할 수 없는 경우에 유용한 복구 코드가 제공됩니다. 코드를 복사해 저장하고 “Continue”를 클릭하세요. 코드를 파일로 다운로드하는 옵션도 있습니다:

5. 다음 페이지에서 연락처 정보를 입력하고 “Next”를 클릭하세요:


6. 다음 페이지에서 SendGrid 대시보드를 여세요:

7. 해당 위치에 도달하면 “Settings” >> “API Keys” 메뉴로 이동하여 새 API 키를 생성하세요:


8. 열린 메뉴에서 API 키 이름을 입력하고, API 키 권한을 “Full Access” 옵션으로 설정한 후 구성을 저장하세요:

9. SendGrid 발신자 인증을 설정하세요. 방법은 두 가지가 있습니다:

방법 1: 단일 발신자 인증

단일 발신자 인증 - SendGrid 계정 사용 시 인증된 수신자(하나 또는 여러 개의 이메일 주소)를 추가할 수 있는 빠른 인증 방법입니다. 예를 들어, cPanel 서버에 추가된 john.doe@example.com에서 jane.doe@gmail.com으로 이메일을 보내고 싶을 때 사용할 수 있습니다. 이 경우 jane.doe@gmail.com 이메일 주소를 SendGrid의 단일 발신자 인증에 추가해야 합니다.

참고: 단일 발신자 인증은 테스트 용도로만 권장됩니다.

참고: 인증된 도메인의 모든 주소가 아닌, 인증한 주소에서만 발송할 수 있습니다.

단일 발신자 인증을 설정하려면 SendGrid 대시보드에서 “Settings” >> “Sender Authentication” 메뉴로 이동한 후 “Verify a Single Sender” 버튼을 클릭하세요:

다음 페이지에서 연락처 정보를 입력하여 발신자를 생성하고 “Create”를 클릭해 모든 내용을 저장하세요:

그 후 SendGrid에서 인증 이메일을 받게 됩니다. 이메일 주소 추가를 확인하려면 이메일에서 “Verify Single Sender” 버튼을 클릭하세요:

방법 2: 도메인 인증(권장)

“Settings”를 클릭한 후 “Sender Authentication” 메뉴로 이동하고 “Domain Authentication” 항목에서 “Authenticate Your Domain”을 클릭하세요:

다음 페이지에서 1단계와 2단계의 질문에 답변하여 도메인 이름을 인증하고 “Next”를 클릭하세요:

참고: 스크린샷에서는 두 번째 질문에 “아니오”를 선택했지만, 이 답변은 선택 사항입니다.

그 후 필요한 도메인 이름을 입력하고, 필요하다면 추가 설정을 한 뒤 “Next”를 클릭하세요:

이제 해당 CNAME 및 TXT DNS 레코드를 구성하여 도메인 이름을 인증해야 합니다.

도메인에 대한 DNS 레코드를 생성한 후 2단계에서 “I’ve added these records” 박스를 체크하고 아래의 “Verify”를 클릭하여 추가를 확인하세요:

참고: DNS 레코드가 전파되는 데 최대 24~48시간이 걸릴 수 있습니다.

10. 다음 단계는 CyberPanel 서버의 SMTP 설정을 구성하는 것입니다.

아쉽게도 CyberPanel은 아직 SMTP 구성을 위한 별도의 인터페이스를 제공하지 않습니다. SendGrid는 SSH 터미널을 통해 구성해야 합니다. 

  • 먼저, 루트(root)로 서버에 로그인하세요:

ssh root@SERVER_IP_ADDRESS -p PORT


여기서 SERVER_IP_ADDRESS는 서버의 IP 주소이고, PORT는 SSH 연결 포트입니다(기본값은 22022)

  • /etc/postfix/main.cf 파일을 텍스트 편집기로 여세요:

nano /etc/postfix/main.cf
또는
vi /etc/postfix/main.cf

  • 다음 줄을 파일 맨 아래에 추가하세요:

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_tls_security_level = encrypt
header_size_limit = 4096000
relayhost = [smtp.sendgrid.net]:587

  • 이제 별도의 파일에 자격 증명( apikey를 사용자 이름으로, API 키를 비밀번호로 사용)을 지정해야 합니다 /etc/postfix/sasl_passwd (아마 새로 만들어야 할 수도 있습니다):

echo “[smtp.sendgrid.net]:587 apikey:YOUR_SENDGRID_API_KEY> /etc/postfix/sasl_passwd

여기서 YOUR_SENDGRID_API_KEY는 8단계에서 생성한 키입니다.

  • 다음으로, 파일의 읽기 및 쓰기 권한이 root에게만 제한되어 있는지 확인하고, postmap 명령어를 사용해 Postfix의 해시 테이블을 이 새 파일로 업데이트하세요:

sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd

  • 마지막으로 Postfix를 재시작하세요:

systemctl restart postfix

  • 서버에 SASL 플러그인을 설치하세요:

apt-get install libsasl2-modules  # Ubuntu용
dnf install cyrus-sasl-plain      # Almalinux/CloudLinux용
yum install cyrus-sasl-plain       # CentOS용

또한, 일부 인스턴스에서는 인증을 위한 MySQL 백엔드 구성을 위해 Dovecot용 MySQL 드라이버가 필요할 수 있습니다:

apt install dovecot-sqlite dovecot-mysql   # Ubuntu용
dnf install dovecot-mysql               # Almalinux/CloudLinux용
yum install dovecot-mysql                # CentOS용

  • 그 후 Dovecot을 재시작하세요:

systemctl restart dovecot

  • 이제 이메일이 SendGrid를 통해 중계되는지 테스트할 수 있습니다:

sendmail -f YOUR_LOCAL_EMAIL -v DESTINATION_EMAIL

여기서 YOUR_LOCAL_EMAIL은 CyberPanel 계정에서 생성한 이메일 계정이고, DESTINATION_EMAIL은 테스트 이메일을 받을 수신자 이메일입니다.

그런 다음 메시지 본문을 입력하고 Ctrl+D를 눌러 전송하세요.

또는 CyberPanel 계정의 웹메일을 사용해 그곳에서 테스트 이메일을 보낼 수도 있습니다.

유효한 이메일이 필요합니다