Net::SMTP 3.16 ಗೆ ಪೂರ್ವ-ಸಂಪರ್ಕಿತ SOCKS ನಿರ್ಮಾಪಕ ಇಲ್ಲ
Net::SMTP 3.16 ಪೂರ್ವ-ಸಂಪರ್ಕಿತ ಸಾಕೆಟ್ಗಾಗಿ ದಾಖಲಿತ ನಿರ್ಮಾಪಕ ಆಯ್ಕೆಯನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ. ಪ್ರಾಕ್ಸಿ ಸಾಗಣೆ ಸಂಯೋಜನೆ ಆಯ್ಕೆಮಾಡುವಾಗ SMTP ಶುಭಾಶಯ, EHLO ಮತ್ತು TLS ಕ್ರಮವನ್ನು ಹಾಗೆಯೇ ಉಳಿಸಿ.
Net::SMTP 3.16 SOCKS ಅಥವಾ ಪೂರ್ವ-ಸಂಪರ್ಕಿತ ಸಾಕೆಟ್ ನಿರ್ಮಾಪಕ ನಿಯತಾಂಕವನ್ನು ದಾಖಲಿಸುವುದಿಲ್ಲ. ಫೈಲ್ ವಿವರಣೆಯನ್ನು ಪಿತ್ರಾರ್ಜಿತ new_from_fd ನೊಂದಿಗೆ ಸುತ್ತುವುದರಿಂದ ಅದರ SMTP ನಿರ್ಮಾಪಕ ಚಲಿಸುವುದಿಲ್ಲ. ಯಶಸ್ವಿ SOCKS ಸಂಪರ್ಕವು ಸ್ಟ್ರೀಮ್ ನೀಡುತ್ತದೆ, ಆರಂಭಿಸಿದ ಮೇಲ್ ಸೆಷನ್ ಅಲ್ಲ.
ಸಾಮಾನ್ಯ SMTP ಗಾಗಿ, ನಂತರದ STARTTLS ಉನ್ನತೀಕರಣ ಸೇರಿದಂತೆ, ಸರ್ವರ್ ಮೊದಲು ಮಾತನಾಡುತ್ತದೆ:
SOCKS: connection to smtp.example.net:587 succeeds
server: 220 smtp.example.net ready
client: EHLO client.example.net
server: 250-smtp.example.net
server: 250-STARTTLS
server: 250 AUTH ...ಇದು ರೂಪರೇಖೆ; ಘೋಷಿತ ವಿಸ್ತರಣೆಗಳು ಬದಲಾಗುತ್ತವೆ. ಶುಭಾಶಯವೇ ಹಲವು ಸಾಲುಗಳಿಗೆ ಹಬ್ಬಬಹುದು: ಪ್ರತಿಕ್ರಿಯೆ ಕೋಡ್ ನಂತರ ಹೈಫನ್ ಬಂದರೆ ಪ್ರತಿಕ್ರಿಯೆ ಮುಂದುವರಿಯುತ್ತದೆ, ಅದರ ಕೊನೆಯ ಸಾಲು ಅದನ್ನು ಮುಗಿಸುತ್ತದೆ. EHLO ಮೊದಲು ಇಡೀ ಶುಭಾಶಯವನ್ನು ಸೇವಿಸಿ. ಇಲ್ಲದಿದ್ದರೆ ಕ್ಲೈಂಟ್ EHLO ಯ 250 ನಿರೀಕ್ಷಿಸುವಾಗ ಹಳೆಯ 220 ಓದಿ ಆರೋಗ್ಯಕರ ಸಂಪರ್ಕದಲ್ಲಿ ಲಯ ತಪ್ಪಬಹುದು.
ಅಂತರ್ಗತ TLS ಬೇರೆ ಕ್ರಮ ಹೊಂದಿದೆ: SOCKS ಸಂಪರ್ಕ, TLS ಹಸ್ತಲಾಘವ, ನಂತರ TLS ಒಳಗೆ SMTP ಶುಭಾಶಯ. STARTTLS ಓದಬಹುದಾದ ಶುಭಾಶಯ ಮತ್ತು EHLO ನಿಂದ ಆರಂಭವಾಗುತ್ತದೆ, ಸ್ಟ್ರೀಮ್ ಉನ್ನತೀಕರಿಸಿ ನಂತರ ಮತ್ತೆ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಪಡೆಯುತ್ತದೆ.
ಸಾರ್ವಜನಿಕ ನಿರ್ಮಾಪಕ ಸಾಮಾನ್ಯವಾಗಿ ಸಾಕೆಟ್ ಸಂರಚನೆ, ಉಳಿಸಿದ ಸಂಪರ್ಕ ನಿಯತಾಂಕಗಳು ಮತ್ತು ಶುಭಾಶಯ ಮಾಹಿತಿ, ಆರಂಭಿಕ ಪ್ರತಿಕ್ರಿಯೆ ಮತ್ತು ಸೂಕ್ತವಾದಲ್ಲಿ HELO ಬ್ಯಾಕಪ್ನೊಂದಿಗೆ EHLO ನಿರ್ವಹಿಸುತ್ತದೆ:
use Net::SMTP;
my $smtp = Net::SMTP->new(
'smtp.example.net',
Port => 587,
Hello => 'client.example.net',
Timeout => 30,
) or die "SMTP connection failed: $@";
$smtp->starttls()
or die "STARTTLS failed: " . $smtp->message;ಈ ಸಾರ್ವಜನಿಕ ಉದಾಹರಣೆ STARTTLS ಬಳಸುತ್ತದೆ ಮತ್ತು SOCKS ಸಂರಚಿಸುವುದಿಲ್ಲ. ಸರ್ವರ್ ಹೆಸರು ಮೇಲ್ ಗಮ್ಯಸ್ಥಾನವನ್ನು ಆಯ್ಕೆಮಾಡುತ್ತದೆ; Hello ಕ್ಲೈಂಟ್ನ SMTP ಗುರುತನ್ನು ಒದಗಿಸುತ್ತದೆ. ಅಂತರ್ಗತ TLS ಗಾಗಿ ದಾಖಲಿತ SSL ನಿರ್ಮಾಪಕ ಆಯ್ಕೆ ಮತ್ತು ಸೇವೆಯ ಪೋರ್ಟ್ ಬಳಸಿ.
SendHello => 0 ಸ್ವಯಂಚಾಲಿತ EHLO/HELO ಅನ್ನು ನಿಗ್ರಹಿಸುತ್ತದೆ, ಶುಭಾಶಯ ಓದುವುದನ್ನು ಅಥವಾ ಸಾಗಣೆ ನಿರ್ಮಾಣವನ್ನು ಅಲ್ಲ. ಸಾಲು ಓದುಗವನ್ನು ಕರೆದು ನಂತರ hello() ಕರೆಯುವುದೂ ಆರಂಭದ ದಾಖಲಿತ ಪರ್ಯಾಯವಲ್ಲ: Net::Cmd ತನ್ನ ಕೆಳಮಟ್ಟದ ಪ್ರತಿಕ್ರಿಯೆ ಓದುಗರನ್ನು ಸಂರಕ್ಷಿತ ಉಪವರ್ಗ ವಿಧಾನಗಳಾಗಿ ವರ್ಗೀಕರಿಸುತ್ತದೆ.
SOCKS ಕಡ್ಡಾಯವಾದರೆ, ಬೆಂಬಲಿತ SOCKS ಇಂಟರ್ಫೇಸ್ ಇರುವ ಕ್ಲೈಂಟ್ ಆಯ್ಕೆಮಾಡಿ ಅಥವಾ ನಿರ್ದಿಷ್ಟ Net::SMTP ಆವೃತ್ತಿಯ ವಿರುದ್ಧ ಸಂಯೋಜನೆ ನಿರ್ವಹಿಸಿ. ಖಾಸಗಿ ಕ್ಷೇತ್ರಗಳನ್ನು ನಕಲಿಸುವ ಬದಲು ಮೇಲಿನ ಕ್ರಮವನ್ನು ಅದರ ಒಪ್ಪಂದವಾಗಿ ಬಳಸಿ. ಪ್ರತ್ಯೇಕ TCP ಅಡಾಪ್ಟರ್ ಕೂಡ ಉದ್ದೇಶಪೂರ್ವಕ TLS ಗುರುತು ನಿರ್ವಹಣೆ ಬೇಕು: ಪ್ರಮಾಣಪತ್ರವು ನಿಜವಾದ ಮೇಲ್ ಸೇವೆಯನ್ನು ಗುರುತಿಸಬೇಕು, ಮತ್ತು ಪ್ರಾಕ್ಸಿ ರುಜುವಾತುಗಳು SMTP ಲಾಗಿನ್ನಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿರುತ್ತವೆ.