Perl을 사용하여 이메일 보내기

Perleul Sayonghayeo Imeil Bonaegi



Perl에는 Ubuntu 운영 체제에서 이메일을 보내기 위한 많은 모듈이 있습니다. 'Net::SMTP::SSL' 모듈이 그 중 하나입니다. 이 Perl 모듈을 사용하여 이메일을 보내려면 올바른 사용자 이름과 비밀번호를 가진 유효한 SMTP 서버가 필요합니다. 이 튜토리얼에서는 Ubuntu 운영 체제에서 Perl 스크립트를 사용하여 이메일을 보내는 데 Gmail 계정의 SMTP 서버와 유효한 사용자 이름 및 비밀번호가 사용됩니다. 그러나 Gmail 계정에서는 Gmail SMTP 서버를 사용하여 이메일을 보내려면 몇 가지 구성이 필요합니다. Gmail SMTP 서버를 사용하여 이메일을 보내려면 모든 Gmail 계정의 '보안 수준이 낮은 앱' 옵션이 필요합니다. 하지만 지메일 계정의 이 옵션은 2022년부터 삭제됩니다. 이제 이메일을 보내려면 지메일 계정의 “앱 비밀번호”를 설정해야 합니다. 이 튜토리얼의 예제를 연습하기 전에 이메일을 보내는 데 사용될 Gmail 계정에 대해 이 비밀번호를 설정해야 합니다.

이메일 전송의 다양한 예

Gmail SMTP 서버와 Gmail 계정을 사용하여 이메일을 보내는 방법이 튜토리얼의 이 부분에 나와 있습니다.

예 1: 간단한 텍스트 이메일 보내기

Gmail SMTP 서버를 사용하여 간단한 텍스트 이메일을 보내는 다음 스크립트를 사용하여 Perl 파일을 만듭니다. $username 및 $password 변수에 유효한 이메일 주소와 앱 비밀번호로 설정된 비밀번호를 설정해야 합니다. 더미 사용자 이름과 비밀번호는 스크립트에 할당됩니다. 앱 비밀번호가 올바르게 구성되지 않으면 이메일이 전송되지 않습니다. 다음으로 유효한 수신자 및 발신자 이메일 주소를 $to 및 $from 변수에 설정하여 이메일이 제대로 전송되었는지 확인합니다. 스크립트의 다른 부분은 변경되지 않은 상태로 유지됩니다. SMTP 서버가 연결되어 있고 사용자 정보가 성공적으로 인증되면 수신자의 이메일 주소로 간단한 문자 메시지가 전송됩니다.







#!/usr/bin/perl

#필요한 모듈 가져오기
엄격한 사용 ;
Net::SMTP::SSL 사용 ;

#Gmail 서버를 사용하여 이메일을 보내는 서브루틴을 선언합니다.
하위 보내기이메일
{

#인증을 위한 사용자 이름과 비밀번호
내 $username = '사용자 이름@gmail.com' ;
내 $password = '앱 비밀번호' ;

#이메일 전송을 위한 변수 초기화
내 $to = 'receiver@gmail.com' ;
내 $from = '메허 니가르 ' ;
내 $주제 = '테스트 이메일입니다' ;
내 $메시지 = '안녕하세요. Perl을 사용하여 이메일을 보내드립니다.' ;

#smtp 변수 선언
내 $smtpServer ;

#Gmail smtp 서버에 연결
만약에 ( ~ 아니다 $smtp서버 = 네트워크::SMTP::SSL- > 새로운 ( 'smtp.gmail.com' , 포트 => 465 , 디버그 => 1 ) )
{
그만큼 'SMTP 서버에 연결할 수 없습니다. \N ' ;
}

#사용자 이름과 비밀번호가 유효한지 확인하세요
$smtp서버- > 인증 ( $사용자 이름 , $password ) || 그만큼 '인증 오류. \N ' ;

$smtp서버- > 우편 ( $에서. ' \N ' ) ;
$smtp서버- > 에게 ( $to. ' \N ' ) ;
$smtp서버- > 데이터 ( ) ;
$smtp서버- > 데이터전송 ( '에서: ' . $에서 . ' \N ' ) ;
$smtp서버- > 데이터전송 ( '에게: ' . $to . ' \N ' ) ;
$smtp서버- > 데이터전송 ( '주제: ' . $주제 . ' \N ' ) ;
$smtp서버- > 데이터전송 ( ' \N ' ) ;

}

#서브루틴 호출

&이메일을 보내 ( ) ;

산출:

이메일이 성공적으로 전송된 경우 스크립트를 실행한 후 출력 시작 부분에 다음과 유사한 정보가 나타납니다.

수신자 이메일 주소를 열면 받은편지함에 다음 이메일이 도착합니다.

예 2: HTML 형식의 이메일 보내기

Gmail SMTP 서버를 사용하여 HTML 형식의 이메일을 보내는 다음 스크립트를 사용하여 Perl 파일을 만듭니다. 이전 예시와 같이 유효한 이메일 주소와 비밀번호를 설정해야 합니다. 다음으로 유효한 수신자 및 발신자 이메일 주소를 설정하세요. HTML 코드는 스크립트에 이메일 메시지로 추가됩니다. HTML 형식의 이메일을 보내기 위해 이메일의 내용 유형을 text/html로 설정합니다. 스크립트의 다른 부분은 이전 예제와 동일합니다. SMTP 서버가 연결되어 있고 사용자 정보가 성공적으로 인증되면 HTML 형식의 이메일이 수신자 이메일 주소로 전송됩니다.

#!/usr/bin/perl

#필요한 모듈 가져오기
엄격한 사용 ;
Net::SMTP::SSL 사용 ;

#Gmail 서버를 사용하여 이메일을 보내는 서브루틴을 선언합니다.
하위 보내기이메일
{
#인증을 위한 사용자 이름과 비밀번호
내 $username = '사용자 이름@gmail.com' ;
내 $password = '앱 비밀번호' ;

#이메일 전송을 위한 변수 초기화
내 $to = 'receiver@gmail.com' ;
내 $from = '메허 니가르 ' ;
내 $주제 = '등록이 완료되었습니다' ;
내 $메시지 = '

저희 사이트에 오신 것을 환영합니다

'
;

#smtp 변수 선언
내 $smtpServer ;

#Gmail smtp 서버와 연결
만약에 ( ~ 아니다 $smtp서버 = 네트워크::SMTP::SSL- > 새로운 ( 'smtp.gmail.com' , 포트 => 465 , 디버그 => 1 ) )
{
그만큼 'SMTP 서버에 연결할 수 없습니다. \N ' ;
}

#사용자 이름과 비밀번호가 유효한지 확인하세요
$smtp서버- > 인증 ( $사용자 이름 , $password ) || 그만큼 '인증 오류. \N ' ;

$smtp서버- > 우편 ( $에서. ' \N ' ) ;
$smtp서버- > 에게 ( $to. ' \N ' ) ;
$smtp서버- > 데이터 ( ) ;
$smtp서버- > 데이터전송 ( '에서: ' . $에서 . ' \N ' ) ;
$smtp서버- > 데이터전송 ( '에게: ' . $to . ' \N ' ) ;
$smtp서버- > 데이터전송 ( '주제: ' . $주제 . ' \N ' ) ;

#html 형식의 이메일을 보내려면 이메일 콘텐츠 유형을 HTML로 설정하세요.
$smtp서버- > 데이터전송 ( '콘텐츠 유형: text/html; charset=utf-8 \N \N ' ) ;
$smtp서버- > 데이터전송 ( $ 메시지. ' \N ' ) ;
$smtp서버- > 데이터 끝 ( ) ;
$smtp서버- > 그만두다 ;

}

#서브루틴 호출

&이메일을 보내 ( ) ;

산출:

이메일이 성공적으로 전송된 경우 스크립트를 실행한 후 출력 시작 부분에 다음과 유사한 정보가 나타납니다.

수신자 이메일 주소를 열면 받은편지함에 다음 이메일이 도착합니다.

결론

Gmail SMTP 서버를 통해 Perl을 사용하여 이메일을 보내는 방법은 Gmail 계정의 '보안 수준이 낮은 앱'을 비활성화한 후 이전만큼 쉽지 않습니다. 하지만 이제 앱 비밀번호를 설정하여 이메일을 보낼 수 있습니다.