Hantar E-mel Menggunakan Perl

Hantar E Mel Menggunakan Perl



Banyak modul wujud dalam Perl untuk menghantar e-mel daripada sistem pengendalian Ubuntu. Modul “Net::SMTP::SSL” adalah salah satu daripadanya. Mana-mana pelayan SMTP yang sah dengan nama pengguna dan kata laluan yang betul diperlukan untuk menghantar e-mel menggunakan modul Perl ini. Pelayan SMTP akaun Gmail dan nama pengguna dan kata laluan yang sah digunakan dalam tutorial ini untuk menghantar e-mel menggunakan skrip Perl daripada sistem pengendalian Ubuntu. Walau bagaimanapun, akaun Gmail memerlukan beberapa konfigurasi untuk menghantar e-mel menggunakan pelayan SMTP Gmail. Pilihan 'apl kurang selamat' bagi mana-mana akaun Gmail diperlukan untuk membolehkan penghantaran e-mel menggunakan pelayan SMTP Gmail. Tetapi pilihan akaun Gmail ini dialih keluar dari tahun 2022. Sekarang, anda perlu menetapkan 'Kata Laluan Apl' akaun Gmail untuk menghantar e-mel. Anda perlu menetapkan kata laluan ini untuk akaun Gmail yang akan digunakan untuk menghantar e-mel sebelum mempraktikkan contoh tutorial ini.

Contoh Berbeza Menghantar E-mel

Kaedah menghantar e-mel menggunakan pelayan SMTP Gmail dan akaun Gmail ditunjukkan dalam bahagian tutorial ini.

Contoh 1: Menghantar E-mel Teks Ringkas

Cipta fail Perl dengan skrip berikut yang menghantar e-mel teks ringkas menggunakan pelayan SMTP Gmail. Anda perlu menetapkan alamat e-mel yang sah dan kata laluan yang ditetapkan untuk kata laluan apl ke dalam pembolehubah $nama pengguna dan $kata laluan. Nama pengguna dan kata laluan palsu diberikan dalam skrip. E-mel tidak akan dihantar jika kata laluan apl tidak dikonfigurasikan dengan betul. Seterusnya, tetapkan penerima yang sah dan alamat e-mel pengirim kepada pembolehubah $to dan $from untuk menyemak sama ada e-mel dihantar dengan betul. Bahagian lain skrip kekal tidak berubah. Mesej teks ringkas dihantar ke alamat e-mel penerima jika pelayan SMTP disambungkan dan maklumat pengguna berjaya disahkan.







#!/usr/bin/perl

#Import modul yang diperlukan
menggunakan ketat ;
gunakan Net::SMTP::SSL ;

#Isytiharkan subrutin untuk menghantar e-mel menggunakan pelayan Gmail
sub hantarEmel
{

#Nama pengguna dan kata laluan untuk pengesahan
$nama pengguna saya = 'nama pengguna@gmail.com' ;
$kata laluan saya = 'kata laluan apl' ;

#Memulakan pembolehubah untuk menghantar e-mel
$kepada saya = 'receiver@gmail.com' ;
$daripada saya = 'Meher Nigar ' ;
$subjek saya = 'Ia adalah e-mel ujian' ;
$mesej saya = 'Helo, menghantar e-mel menggunakan Perl.' ;

#Isytiharkan pembolehubah smtp
$smtpServer saya ;

#Sambung dengan pelayan smtp Gmail
jika ( bukan $smtpServer = Net::SMTP::SSL- > baru ( 'smtp.gmail.com' , Pelabuhan => 465 , Nyahpepijat => 1 ) )
{
yang 'Tidak dapat menyambung dengan pelayan SMTP. \n ' ;
}

#Semak nama pengguna dan kata laluan adalah sah
$smtpServer- > auth ( $nama pengguna , $kata laluan ) || yang 'Ralat pengesahan. \n ' ;

$smtpServer- > mel ( $daripada. ' \n ' ) ;
$smtpServer- > kepada ( $kepada. ' \n ' ) ;
$smtpServer- > data ( ) ;
$smtpServer- > hantaran data ( 'Daripada:' . $daripada . ' \n ' ) ;
$smtpServer- > hantaran data ( 'Kepada: ' . $kepada . ' \n ' ) ;
$smtpServer- > hantaran data ( 'Subjek:' . $subjek . ' \n ' ) ;
$smtpServer- > hantaran data ( ' \n ' ) ;

}

#Panggil subrutin

&menghantar e-mel ( ) ;

Pengeluaran:



Maklumat serupa berikut muncul pada permulaan output selepas melaksanakan skrip jika e-mel berjaya dihantar:







Apabila anda membuka alamat e-mel penerima, anda akan mendapat e-mel berikut dalam peti masuk:

Contoh 2: Menghantar E-mel Berformat HTML

Cipta fail Perl dengan skrip berikut yang menghantar e-mel berformat HTML menggunakan pelayan SMTP Gmail. Anda perlu menetapkan alamat e-mel dan kata laluan yang sah seperti contoh sebelumnya. Seterusnya, tetapkan alamat e-mel penerima dan penghantar yang sah. Kod HTML ditambah sebagai mesej e-mel dalam skrip. Jenis kandungan e-mel ditetapkan kepada teks/html untuk menghantar e-mel berformat HTML. Bahagian lain skrip adalah sama seperti contoh sebelumnya. E-mel berformat HTML dihantar ke alamat e-mel penerima jika pelayan SMTP disambungkan dan maklumat pengguna berjaya disahkan.

#!/usr/bin/perl

#Import modul yang diperlukan
menggunakan ketat ;
gunakan Net::SMTP::SSL ;

#Isytiharkan subrutin untuk menghantar e-mel menggunakan pelayan Gmail
sub hantarEmel
{
#Nama pengguna dan kata laluan untuk pengesahan
$nama pengguna saya = 'nama pengguna@gmail.com' ;
$kata laluan saya = 'kata laluan apl' ;

#Memulakan pembolehubah untuk menghantar e-mel
$kepada saya = 'receiver@gmail.com' ;
$daripada saya = 'Meher Nigar ' ;
$subjek saya = 'Pendaftaran selesai' ;
$mesej saya = '

Selamat datang ke tapak kami

'
;

#Isytiharkan pembolehubah smtp
$smtpServer saya ;

#Sambung dengan pelayan smtp Gmail
jika ( bukan $smtpServer = Net::SMTP::SSL- > baru ( 'smtp.gmail.com' , Pelabuhan => 465 , Nyahpepijat => 1 ) )
{
yang 'Tidak dapat menyambung dengan pelayan SMTP. \n ' ;
}

#Semak nama pengguna dan kata laluan adalah sah
$smtpServer- > auth ( $nama pengguna , $kata laluan ) || yang 'Ralat pengesahan. \n ' ;

$smtpServer- > mel ( $daripada. ' \n ' ) ;
$smtpServer- > kepada ( $kepada. ' \n ' ) ;
$smtpServer- > data ( ) ;
$smtpServer- > hantaran data ( 'Daripada:' . $daripada . ' \n ' ) ;
$smtpServer- > hantaran data ( 'Kepada: ' . $kepada . ' \n ' ) ;
$smtpServer- > hantaran data ( 'Subjek:' . $subjek . ' \n ' ) ;

#Tetapkan jenis kandungan e-mel kepada HTML untuk menghantar e-mel berformat html
$smtpServer- > hantaran data ( 'Jenis Kandungan: text/html; charset=utf-8 \n \n ' ) ;
$smtpServer- > hantaran data ( $mesej. ' \n ' ) ;
$smtpServer- > tamat data ( ) ;
$smtpServer- > berhenti ;

}

#Panggil subrutin

&menghantar e-mel ( ) ;

Pengeluaran:



Maklumat serupa berikut muncul pada permulaan output selepas melaksanakan skrip jika e-mel berjaya dihantar:







Apabila anda membuka alamat e-mel penerima, anda akan mendapat e-mel berikut dalam peti masuk:





Kesimpulan

Kaedah menghantar e-mel menggunakan Perl melalui pelayan SMTP Gmail tidak semudah dahulu selepas melumpuhkan 'apl kurang selamat' akaun Gmail. Tetapi anda boleh menghantar e-mel dengan menetapkan kata laluan apl sekarang.