ส่งอีเมลโดยใช้ Perl

Sng Ximel Doy Chi Perl



Perl มีโมดูลจำนวนมากเพื่อส่งอีเมลจากระบบปฏิบัติการ Ubuntu โมดูล “Net::SMTP::SSL” เป็นหนึ่งในนั้น เซิร์ฟเวอร์ SMTP ที่ถูกต้องใด ๆ ที่มีชื่อผู้ใช้และรหัสผ่านที่ถูกต้องจะต้องส่งอีเมลโดยใช้โมดูล Perl นี้ เซิร์ฟเวอร์ SMTP ของบัญชี Gmail รวมถึงชื่อผู้ใช้และรหัสผ่านที่ถูกต้องถูกนำมาใช้ในบทช่วยสอนนี้เพื่อส่งอีเมลโดยใช้สคริปต์ Perl จากระบบปฏิบัติการ Ubuntu อย่างไรก็ตาม บัญชี Gmail ต้องมีการกำหนดค่าบางอย่างเพื่อส่งอีเมลโดยใช้เซิร์ฟเวอร์ Gmail SMTP ต้องใช้ตัวเลือก 'แอปที่มีความปลอดภัยน้อย' ของบัญชี Gmail ใดๆ เพื่อเปิดใช้งานการส่งอีเมลโดยใช้เซิร์ฟเวอร์ Gmail SMTP แต่ตัวเลือกของบัญชี Gmail นี้จะถูกลบออกจากปี 2022 ตอนนี้คุณต้องตั้ง “รหัสผ่านสำหรับแอป” ของบัญชี Gmail เพื่อส่งอีเมล คุณต้องตั้งรหัสผ่านนี้สำหรับบัญชี Gmail ที่จะใช้ในการส่งอีเมลก่อนที่จะฝึกตัวอย่างบทช่วยสอนนี้

ตัวอย่างต่างๆ ของการส่งอีเมล

วิธีการส่งอีเมลโดยใช้เซิร์ฟเวอร์ Gmail SMTP และบัญชี Gmail จะแสดงอยู่ในบทช่วยสอนในส่วนนี้

ตัวอย่างที่ 1: การส่งอีเมลข้อความธรรมดา

สร้างไฟล์ Perl ด้วยสคริปต์ต่อไปนี้ซึ่งจะส่งอีเมลข้อความธรรมดาโดยใช้เซิร์ฟเวอร์ Gmail SMTP คุณต้องตั้งค่าที่อยู่อีเมลที่ถูกต้องและรหัสผ่านที่ตั้งไว้สำหรับรหัสผ่านสำหรับแอปลงในตัวแปร $username และ $password ชื่อผู้ใช้และรหัสผ่านจำลองถูกกำหนดไว้ในสคริปต์ อีเมลจะไม่ถูกส่งหากกำหนดค่ารหัสผ่านสำหรับแอปไม่ถูกต้อง จากนั้น ตั้งค่าผู้รับและที่อยู่อีเมลของผู้ส่งที่ถูกต้องเป็นตัวแปร $to และ $from เพื่อตรวจสอบว่าอีเมลถูกส่งอย่างถูกต้องหรือไม่ ส่วนอื่นๆ ของสคริปต์ยังคงไม่เปลี่ยนแปลง ข้อความธรรมดาจะถูกส่งไปยังที่อยู่อีเมลของผู้รับหากเซิร์ฟเวอร์ SMTP เชื่อมต่อและข้อมูลของผู้ใช้ได้รับการตรวจสอบสิทธิ์เรียบร้อยแล้ว







#!/usr/bin/perl

#นำเข้าโมดูลที่จำเป็น
ใช้อย่างเข้มงวด ;
ใช้เน็ต::SMTP::SSL ;

#ประกาศรูทีนย่อยเพื่อส่งอีเมลโดยใช้เซิร์ฟเวอร์ Gmail
ส่งอีเมลย่อย
{

#ชื่อผู้ใช้และรหัสผ่านสำหรับการตรวจสอบ
$ชื่อผู้ใช้ของฉัน = 'ชื่อผู้ใช้@gmail.com' ;
รหัสผ่าน $ ของฉัน = 'รหัสผ่านสำหรับแอป' ;

#Initialize ตัวแปรสำหรับการส่งอีเมล
$to ของฉัน = 'receiver@gmail.com' ;
$ ของฉันจาก = 'เมเฮอร์ ไนการ์ ' ;
$ subject ของฉัน = 'มันเป็นอีเมลทดสอบ' ;
$ข้อความของฉัน = 'สวัสดี การส่งอีเมลโดยใช้ Perl' ;

#ประกาศตัวแปร smtp
$smtpServer ของฉัน ;

#เชื่อมต่อกับเซิร์ฟเวอร์ Gmail smtp
ถ้า ( ไม่ $smtpServer = สุทธิ::SMTP::SSL- > ใหม่ ( 'smtp.gmail.com' , ท่าเรือ => 465 , ดีบัก => 1 ) )
{
ที่ 'ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ SMTP ได้ \n ' ;
}

#ตรวจสอบชื่อผู้ใช้และรหัสผ่านให้ถูกต้อง
$smtpเซิร์ฟเวอร์- > รับรองความถูกต้อง ( $ชื่อผู้ใช้ , $รหัสผ่าน ) || ที่ “ข้อผิดพลาดในการรับรองความถูกต้อง \n ' ;

$smtpเซิร์ฟเวอร์- > จดหมาย ( $จาก ' \n ' ) ;
$smtpเซิร์ฟเวอร์- > ถึง ( $ถึง ' \n ' ) ;
$smtpเซิร์ฟเวอร์- > ข้อมูล ( ) ;
$smtpเซิร์ฟเวอร์- > ส่งข้อมูล ( 'จาก: ' . $จาก ' \n ' ) ;
$smtpเซิร์ฟเวอร์- > ส่งข้อมูล ( 'ถึง: ' . $ถึง ' \n ' ) ;
$smtpเซิร์ฟเวอร์- > ส่งข้อมูล ( 'เรื่อง: ' . $ เรื่อง . ' \n ' ) ;
$smtpเซิร์ฟเวอร์- > ส่งข้อมูล ( ' \n ' ) ;

}

#เรียกรูทีนย่อย

&ส่งอีเมล ( ) ;

เอาท์พุท:



ข้อมูลที่คล้ายกันต่อไปนี้จะปรากฏที่จุดเริ่มต้นของเอาต์พุตหลังจากรันสคริปต์หากส่งอีเมลสำเร็จ:







เมื่อคุณเปิดที่อยู่อีเมลของผู้รับ คุณจะได้รับอีเมลต่อไปนี้ในกล่องจดหมาย:

ตัวอย่างที่ 2: การส่งอีเมลในรูปแบบ HTML

สร้างไฟล์ Perl ด้วยสคริปต์ต่อไปนี้ซึ่งจะส่งอีเมลในรูปแบบ HTML โดยใช้เซิร์ฟเวอร์ Gmail SMTP คุณต้องตั้งค่าที่อยู่อีเมลและรหัสผ่านที่ถูกต้องเหมือนในตัวอย่างก่อนหน้านี้ จากนั้น ตั้งค่าที่อยู่อีเมลของผู้รับและผู้ส่งที่ถูกต้อง รหัส HTML จะถูกเพิ่มเป็นข้อความอีเมลในสคริปต์ ประเภทเนื้อหาของอีเมลถูกตั้งค่าเป็นข้อความ/html เพื่อส่งอีเมลในรูปแบบ HTML อีกส่วนหนึ่งของสคริปต์จะเหมือนกับตัวอย่างก่อนหน้า อีเมลในรูปแบบ HTML จะถูกส่งไปยังที่อยู่อีเมลของผู้รับหากมีการเชื่อมต่อเซิร์ฟเวอร์ SMTP และข้อมูลของผู้ใช้ได้รับการตรวจสอบสิทธิ์เรียบร้อยแล้ว

#!/usr/bin/perl

#นำเข้าโมดูลที่จำเป็น
ใช้อย่างเข้มงวด ;
ใช้เน็ต::SMTP::SSL ;

#ประกาศรูทีนย่อยเพื่อส่งอีเมลโดยใช้เซิร์ฟเวอร์ Gmail
ส่งอีเมลย่อย
{
#ชื่อผู้ใช้และรหัสผ่านสำหรับการตรวจสอบ
$ชื่อผู้ใช้ของฉัน = 'ชื่อผู้ใช้@gmail.com' ;
รหัสผ่าน $ ของฉัน = 'รหัสผ่านสำหรับแอป' ;

#Initialize ตัวแปรสำหรับการส่งอีเมล
$to ของฉัน = 'receiver@gmail.com' ;
$ ของฉันจาก = 'เมเฮอร์ ไนการ์ ' ;
$ subject ของฉัน = 'การลงทะเบียนเสร็จสมบูรณ์' ;
$ข้อความของฉัน = '

ยินดีต้อนรับสู่เว็บไซต์ของเรา

'
;

#ประกาศตัวแปร smtp
$smtpServer ของฉัน ;

#เชื่อมต่อกับเซิร์ฟเวอร์ Gmail smtp
ถ้า ( ไม่ $smtpServer = สุทธิ::SMTP::SSL- > ใหม่ ( 'smtp.gmail.com' , ท่าเรือ => 465 , ดีบัก => 1 ) )
{
ที่ 'ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ SMTP ได้ \n ' ;
}

#ตรวจสอบชื่อผู้ใช้และรหัสผ่านให้ถูกต้อง
$smtpเซิร์ฟเวอร์- > รับรองความถูกต้อง ( $ชื่อผู้ใช้ , $รหัสผ่าน ) || ที่ “ข้อผิดพลาดในการรับรองความถูกต้อง \n ' ;

$smtpเซิร์ฟเวอร์- > จดหมาย ( $จาก ' \n ' ) ;
$smtpเซิร์ฟเวอร์- > ถึง ( $ถึง ' \n ' ) ;
$smtpเซิร์ฟเวอร์- > ข้อมูล ( ) ;
$smtpเซิร์ฟเวอร์- > ส่งข้อมูล ( 'จาก: ' . $จาก ' \n ' ) ;
$smtpเซิร์ฟเวอร์- > ส่งข้อมูล ( 'ถึง: ' . $ถึง ' \n ' ) ;
$smtpเซิร์ฟเวอร์- > ส่งข้อมูล ( 'เรื่อง: ' . $ เรื่อง . ' \n ' ) ;

#ตั้งค่าประเภทเนื้อหาอีเมลเป็น HTML เพื่อส่งอีเมลในรูปแบบ HTML
$smtpเซิร์ฟเวอร์- > ส่งข้อมูล ( 'ประเภทเนื้อหา: text/html; charset=utf-8 \n \n ' ) ;
$smtpเซิร์ฟเวอร์- > ส่งข้อมูล ( $ข้อความ ' \n ' ) ;
$smtpเซิร์ฟเวอร์- > สิ้นสุดข้อมูล ( ) ;
$smtpเซิร์ฟเวอร์- > ล้มเลิก ;

}

#เรียกรูทีนย่อย

&ส่งอีเมล ( ) ;

เอาท์พุท:



ข้อมูลที่คล้ายกันต่อไปนี้จะปรากฏที่จุดเริ่มต้นของเอาต์พุตหลังจากรันสคริปต์หากส่งอีเมลสำเร็จ:







เมื่อคุณเปิดที่อยู่อีเมลของผู้รับ คุณจะได้รับอีเมลต่อไปนี้ในกล่องจดหมาย:





บทสรุป

วิธีการส่งอีเมลโดยใช้ Perl ผ่านเซิร์ฟเวอร์ Gmail SMTP นั้นไม่ง่ายเหมือนเมื่อก่อนหลังจากปิดใช้งาน 'แอปที่มีความปลอดภัยน้อย' ของบัญชี Gmail แต่คุณสามารถส่งอีเมลได้โดยตั้งรหัสผ่านแอปทันที