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. אַנדערש קען דער קליענט לייענען אַן אַלטן 220 ווען ער ערוואַרטעט EHLO ס 250 און אַרויסגיין פֿון טאַקט אויף אַ געזונטער פֿאַרבינדונג.
אימפּליציט TLS האָט אַן אַנדער סדר: SOCKS פֿאַרבינדונג, TLS הענטשקע, דערנאָך SMTP באַגריסונג אין TLS. STARTTLS הייבט זיך אָן מיט דער לייענבאַרער באַגריסונג און EHLO, פֿאַרבעסערט דעם שטראָם און באַקומט דערנאָך ווידער פֿעיִקייטן.
דער פּובליקער קאָנסטרוקטאָר באַהאַנדלט געוויינטלעך די סאָקעט קאָנפֿיגוראַציע, אויפֿגעהיטע פֿאַרבינדונג פּאַראַמעטערס און באַגריסונג אינפֿאָרמאַציע, דעם ערשטן ענטפֿער און EHLO מיט HELO צוריקטראָט וווּ עס פּאַסט:
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 אַרײַנלאָגירן.