Ito ang command swaks na maaaring patakbuhin sa OnWorks free hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
swaks - Swiss Army Knife SMTP, ang all-purpose smtp transaction tester
DESCRIPTION
Ang pangunahing layunin ng disenyo ng swaks ay maging isang flexible, scriptable, at transaction-oriented na SMTP test
kasangkapan. Pinangangasiwaan nito ang mga feature at extension ng SMTP gaya ng TLS, authentication, at
pipelining; maramihang bersyon ng SMTP protocol kabilang ang SMTP, ESMTP, at LMTP; at
maraming paraan ng transportasyon kabilang ang mga unix-domain socket, internet-domain socket, at
mga tubo sa mga spawned na proseso. Maaaring tukuyin ang mga opsyon sa mga variable ng kapaligiran,
configuration file, at ang command line na nagbibigay-daan sa maximum na configurability at kadalian ng paggamit
para sa mga operator at scripter.
Mabilis START
Maghatid ng karaniwang pansubok na email sa [protektado ng email] sa port 25 ng test-server.example.net:
swaks --to [protektado ng email] --server test-server.example.net
Maghatid ng karaniwang pansubok na email, na nangangailangan ng pagpapatunay ng CRAM-MD5 bilang user [protektado ng email].
Isang "X-Test" na header ang idaragdag sa katawan ng email. Ang password sa pagpapatunay ay magiging
sinenyasan para sa.
swaks --to [protektado ng email] --mula sa [protektado ng email] --auth CRAM-MD5 --auth-user [protektado ng email] --header-X-Test "pansubok na email"
Subukan ang isang virus scanner gamit ang EICAR sa isang attachment. Huwag ipakita ang bahagi ng DATA ng mensahe.:
swaks -t [protektado ng email] --attach - --server test-server.example.com --suppress-data
Subukan ang isang spam scanner gamit ang GTUBE sa katawan ng isang email, na niruruta sa pamamagitan ng mga MX record para sa
example.com:
swaks --to [protektado ng email] --body /path/to/gtube/file
Maghatid ng karaniwang pansubok na email sa [protektado ng email] gamit ang LMTP protocol sa pamamagitan ng UNIX
domain socket file
swaks --to [protektado ng email] --socket /var/lda.sock --protocol LMTP
Iulat ang lahat ng mga tatanggap sa isang text file na hindi na-verify sa isang test server:
para sa E sa `cat /path/to/email/file`
do
swaks --to $E --server test-server.example.com --quit-after RCPT --hide-all
[$? -ne 0 ] && echo $E
tapos
TUNTUNIN AT MGA KOmbensiyon
Sinusubukan ng dokumentong ito na maging pare-pareho at tiyak sa paggamit nito ng mga sumusunod na termino sa
bawasan ang kalituhan.
transaksiyon
Ang isang transaksyon ay ang pagbubukas ng isang koneksyon sa isang transportasyon patungo sa isang target at gamit ang isang
protocol ng pagmemensahe upang subukang maghatid ng mensahe.
Target
Ang target ng isang transaksyon ay ang bagay na kumukonekta sa swaks. Ang generic na terminong ito ay
ginamit sa buong dokumentasyon dahil karamihan sa iba pang mga termino ay hindi wastong nagpapahiwatig ng isang bagay
tungkol sa sasakyang ginagamit.
transportasyon
Ang transportasyon ay ang pinagbabatayan na paraan na ginamit upang kumonekta sa target.
Protokol
Ang protocol ay ang wika ng aplikasyon na ginagamit upang makipag-usap sa target. Ito
Ang dokumento ay gumagamit ng SMTP upang magsalita sa pangkalahatan ng lahat ng tatlong sinusuportahang protocol maliban kung ito
nagsasaad na ito ay nagsasalita ng partikular na 'SMTP' na protocol at hindi kasama ang iba.
mensahe
Umiiral ang mga SMTP protocol upang maglipat ng mga mensahe, isang set ng mga byte sa isang napagkasunduang format
na may nagpadala at tatanggap.
Sobre
Ang sobre ng mensahe ay naglalaman ng "totoong" nagpadala at tagatanggap ng isang mensahe. Maaari itong
tinutukoy din bilang mga bahagi nito, envelope-sender at envelope-recipients. Ito ay
mahalagang tandaan na ang isang sobre ng mga mensahe ay hindi kailangang tumugma sa To: at From:
mga header.
DATA
Ang bahagi ng DATA ng isang transaksyon sa SMTP ay ang aktwal na mensahe na nangyayari
dinadala. Binubuo ito ng parehong mga header ng mensahe at katawan nito. DATA at katawan
minsan ay ginagamit nang magkasingkahulugan, ngunit palagi silang dalawang natatanging bagay dito
dokumento.
Header
Ang mga header ng isang mensahe ay tinukoy bilang lahat ng mga linya sa seksyon ng DATA ng mensahe bago
ang unang blangko na linya. Naglalaman ang mga ito ng impormasyon tungkol sa email na ipapakita
sa tatanggap tulad ng Kay:, Mula sa:, Paksa:, atbp. Sa dokumentong ito ang mga header ay
palaging nakasulat na may malaking titik sa unang titik at isang trailing colon.
katawan
Ang katawan ng isang mensahe ay ang bahagi ng seksyong DATA nito kasunod ng unang blangkong linya.
OPTION PAMAMARAAN
Upang maiwasan ang potensyal na pagkalito sa dokumentong ito, palaging tinutukoy ang flag sa swaks bilang
isang "opsyon". Kung ang opsyon ay kukuha ng karagdagang data, ang karagdagang data na iyon ay tinutukoy bilang
isang argumento sa opsyon. Halimbawa, "--mula sa [protektado ng email]"maaaring ibigay sa
swaks sa command line, na may "--from" ang opsyon at "[protektado ng email]"pagiging
--mula sa argumento.
Maaaring ibigay ang mga opsyon sa swaks sa tatlong paraan. Maaari silang tukuyin sa isang pagsasaayos
file, sa mga variable ng kapaligiran, at sa command line. Depende sa partikular na opsyon
at bigyan man ito ng argumento o hindi, maaaring i-prompt ng swaks ang user para sa argumento.
Kapag sinusuri ng swaks ang mga opsyon nito, maghahanap muna ito ng configuration file (alinman sa a
default na lokasyon o tinukoy sa --config). Pagkatapos ay sinusuri nito ang anumang mga opsyon sa
mga variable ng kapaligiran. Sa wakas, sinusuri nito ang mga opsyon sa command line. Sa bawat round ng
pagpoproseso, ang anumang mga opsyon na itinakda nang mas maaga ay ma-override. Bilang karagdagan, ang anumang pagpipilian ay maaaring
nilagyan ng prefix na "no-" para makalimutan ng swaks na ang variable ay naitakda na dati.
Ang kakayahang ito ay kinakailangan dahil maraming mga opsyon ang tinatrato ang tinukoy-ngunit-walang-argumento
iba kaysa hindi tinukoy.
Ang eksaktong mekanismo at format para sa paggamit ng bawat isa sa mga uri ay nakalista sa ibaba.
CONFIGURATION FILE
Ang isang configuration file ay maaaring gamitin upang magtakda ng mga karaniwang ginagamit o hindi normal na mga opsyon.
Bilang default, inaayos ng swaks ang $SWAKS_HOME/.swaksrc, $HOME/.swaksrc, at
$LOGDIR/.swaksrc. Kung ang isa sa mga iyon ay natagpuang umiiral (at --config ay hindi pa nagamit)
ang file na iyon ay ginagamit bilang configuration file.
Bukod pa rito, maaaring tukuyin gamit ang isang configuration file sa isang hindi default na lokasyon
--config. Kung ito ay itinakda at hindi bibigyan ng argumento ang swaks ay hindi gagamit ng anuman
configuration file, kabilang ang anumang default na file. Kung ang --config ay tumuturo sa isang nababasa
file, ito ay ginagamit bilang configuration file, na pinapalampas ang anumang default na maaaring umiiral. Kung
tumuturo ito sa isang hindi nababasang file at ipapakita ang error at lalabas ang mga swaks.
Ang isang set ng "portable" na mga default ay maaari ding gawin sa pamamagitan ng pagdaragdag ng mga opsyon sa dulo ng
swaks program file. Tulad ng ipinamahagi, ang huling linya ng swaks ay dapat na "__END__". Anuman
ang mga linyang idinagdag pagkatapos ng __END__ ay ituturing bilang mga nilalaman ng isang configuration file.
Nagbibigay-daan ito sa isang hanay ng mga kagustuhan ng user na awtomatikong makopya mula sa server patungo sa server
sa isang file.
Kung ang kasalukuyan at configuration file ay hindi tahasang naka-off, ang __END__
config ay palaging binabasa. Isang iba pang configuration file lang ang gagamitin sa bawat solong
invocation ng swaks, kahit na maraming configuration file ang tinukoy. Tinutukoy
pinapatay ng --config na opsyon na walang argumento ang pagproseso ng parehong __END__
config at anumang aktwal na config file.
Sa isang configuration file na mga linya na nagsisimula sa isang hash (#) ay binabalewala. Lahat ng iba pang mga linya
ay ipinapalagay na isang opsyon sa swaks, na ang nangungunang gitling o gitling ay opsyonal.
Ang lahat pagkatapos ng unang puwang ng linya ng opsyon ay ipinapalagay na argumento ng opsyon
at hindi pinoproseso ng shell. Samakatuwid ang pagsipi ay karaniwang hindi kailangan at magiging
literal na kasama sa argumento. Narito ang isang halimbawa ng mga nilalaman ng a
configuration file:
# palaging gamitin ang nagpadalang ito, kahit na server o naka-log in na user
--mula sa [protektado ng email]
# Mas gusto ko ang aking mga pansubok na email ay may magandang mula sa header. Tandaan
# ang kakulangan ng mga gitling sa opsyon at kakulangan ng mga quote sa paligid
# buong argumento.
h-Mula sa: "Fred Example"[protektado ng email]>
MGA VARIABLE NG KAPALIGIRAN
Maaaring ibigay ang mga opsyon sa pamamagitan ng mga variable ng kapaligiran. Ang mga variable ay nasa anyo
$SWAKS_OPT_name, kung saan ang pangalan ay ang pangalan ng opsyon na tutukuyin sa
command line. Dahil hindi pinapayagan ang mga gitling sa mga pangalan ng variable ng kapaligiran sa karamihan
unix-ish shell, walang mga nangungunang gitling ang dapat gamitin at anumang gitling sa loob ng opsyon
dapat palitan ang pangalan ng mga underscore. Ang mga sumusunod ay lilikha ng parehong mga pagpipilian
ipinapakita sa halimbawa ng configuration file:
$ SWAKS_OPT_from='[protektado ng email]'
$ SWAKS_OPT_h_From='"Fred Example"[protektado ng email]>'
Ang pagtatakda ng variable sa isang walang laman na halaga ay kapareho ng pagtukoy nito sa command line
na walang argumento. Halimbawa, ang pagtatakda ng SWAKS_OPT_server="" ay magdudulot ng swaks sa
i-prompt ang paggamit para sa server kung saan kumonekta sa bawat invocation.
Bilang karagdagan sa pagtatakda ng katumbas ng mga opsyon sa command line, maaaring itakda ang SWAKS_HOME
sa isang direktoryo na naglalaman ng default na .swaksrc na gagamitin.
MGA OPSYON SA COMMAND LINE
Ang huling paraan ng pagbibigay ng mga opsyon sa swaks ay sa pamamagitan ng command line. Ang mga pagpipilian
kumilos sa paraang naaayon sa karamihan ng mga unix-ish command line program. Maraming pagpipilian
magkaroon ng parehong maikli at mahabang anyo (halimbawa -s at --server). Sa pamamagitan ng convention short
ang mga opsyon ay tinukoy sa isang solong gitling at ang mga mahahabang opsyon ay tinukoy na may dobleng-
gitling. Ito ay isang convention lamang at alinman sa prefix ay gagana sa alinmang uri.
Ang sumusunod ay nagpapakita ng halimbawang ipinakita sa configuration file at environment
variable na mga seksyon:
$ swaks --mula sa [protektado ng email] --h-Mula sa: '"Fred Example"[protektado ng email]>'
TRANSPORT
Maaaring kumonekta ang swaks sa isang target sa pamamagitan ng mga unix pipe ("pipe"), mga unix domain socket ("unix
sockets"), o internet domain sockets ("network sockets"). Kumokonekta sa pamamagitan ng network sockets
ay ang default na pag-uugali. Dahil sa isahan na katangian ng transportasyon na ginamit, bawat set
ng mga opsyon sa sumusunod na seksyon ay kapwa eksklusibo. Pagtukoy ng higit sa isa sa
--server, --pipe, o --socket ay magreresulta sa isang error. Paghahalo ng iba pang mga opsyon sa pagitan
ang mga uri ng transportasyon ay magreresulta lamang sa mga hindi nauugnay na opsyon na hindi papansinin. Nasa ibaba ang isang
maikling paglalarawan ng bawat uri ng transportasyon at ang mga opsyon na partikular doon
uri ng transportasyon.
MGA SOCKET NG NETWORK
Sinusubukan ng transport na ito na maghatid ng mensahe sa pamamagitan ng TCP/IP, ang karaniwang paraan para sa
naghahatid ng SMTP. Ito ang default na transportasyon para sa swaks. Kung wala sa --server,
--pipe, o --socket ay ibinibigay pagkatapos ang transport na ito ay ginagamit at ang target na server ay
tinutukoy mula sa domain ng tatanggap (tingnan ang --server sa ibaba para sa higit pang mga detalye).
Ang transportasyong ito ay nangangailangan ng IO::Socket module na bahagi ng karaniwang perl
pamamahagi. Kung hindi ma-load ang module na ito, ang pagtatangka na gumamit ng transport na ito ay gagawin
magresulta sa isang error at pagwawakas ng programa.
Ang IPv6 ay sinusuportahan kapag ang IO::Socket::INET6 module ay naroroon.
-s, --server [target na mail server[:port]]
Tahasang sabihin sa mga swak na gumamit ng mga network socket at tukuyin ang hostname o IP
address kung saan ikokonekta, o i-prompt kung walang ibinigay na argumento. Kung ang pagpipiliang ito ay
hindi ibinigay at walang ibang opsyon sa transportasyon na ibinigay, ang target na mail server ay
tinutukoy mula sa naaangkop na mga tala ng DNS para sa domain ng email ng tatanggap
address gamit ang Net::DNS module. Kung ang Net::DNS ay hindi available swaks will
subukang kumonekta sa localhost upang maihatid. Ang target na port ay maaaring opsyonal na itakda
dito. Kasama sa mga sinusuportahang format para dito ang SERVER:PORT (mga sumusuportang pangalan at IPv4
mga address); [SERVER]:PORT at SERVER/PORT (mga sumusuportang pangalan, IPv4 at IPv6
mga address). Tingnan din ang --copy-routing.
-p, --port [port]
Tukuyin kung aling TCP port sa target ang gagamitin, o i-prompt kung walang argument
nakalista. Ang argument ay maaaring isang pangalan ng serbisyo (tulad ng nakuha ng getservbyname(3)) o
isang numero ng port. Ang default na port ay tinutukoy ng --protocol na opsyon. Tingnan mo
--protocol para sa higit pang mga detalye.
-li, --local-interface [IP o hostname[:port]]
Gamitin ang argumento bilang lokal na interface para sa papalabas na koneksyon sa SMTP, o prompt
user kung walang ibinigay na argumento. Ang argumento ay maaaring isang IP address o isang hostname. Default
Ang aksyon ay upang hayaan ang operating system na pumili ng lokal na interface. Tingnan ang --server para sa
karagdagang komento sa :port format.
-lp, --local-port [port]
Tukuyin ang papalabas na port kung saan magmula ang transaksyon. Kung ang pagpipiliang ito ay
hindi tinukoy ang system ay pipili ng ephemeral port. Tandaan na ang mga regular na gumagamit
hindi maaaring tukuyin ang ilang mga port.
--copy-routing [domain]
Ang argumento ay binibigyang kahulugan bilang bahagi ng domain ng isang email address at ito ay ginagamit
upang mahanap ang target na server gamit ang parehong logic na gagamitin upang hanapin ang
target na server para sa isang email address ng tatanggap. Tingnan ang --to na opsyon para sa higit pang mga detalye
sa kung paano tinutukoy ang target mula sa email domain.
-4, -6
Pilitin ang IPv4 o IPv6.
UNIX SOCKET
Sinusubukan ng paraan ng transportasyong ito na maghatid ng mga mensahe sa pamamagitan ng isang unix-domain socket file.
Ito ay kapaki-pakinabang para sa pagsubok ng MTA/MDA na nakikinig sa mga socket file (halimbawa, pagsubok
LMTP na paghahatid kay Cyrus). Ang transportasyong ito ay nangangailangan ng IO::Socket module na bahagi
ng karaniwang pamamahagi ng perl. Kung hindi ma-load ang module na ito, sinusubukang gamitin
ang transportasyong ito ay magreresulta sa isang error at pagwawakas ng programa.
--socket [/path/to/socket/file]
Kinukuha ng opsyong ito bilang argumento ang isang unix-domain socket file. Kung hindi kaya ng swaks
upang buksan ang socket na ito ay magpapakita ito ng error at lalabas.
MGA TUBO
Sinusubukan ng transportasyong ito na mag-spawn ng isang proseso at makipag-usap dito sa pamamagitan ng mga tubo. Ang
dapat maging handa ang nabuong programa upang kumilos bilang isang mail server sa STDIN/STDOUT. Anuman
Dapat itong suportahan ng MTA na idinisenyo upang gumana mula sa inet/xinet. Bilang karagdagan sa ilang MTA
magbigay ng mga mode ng pagsubok na maaaring makipag-ugnayan sa pamamagitan ng STDIN/STDOUT. Ang transportasyong ito
ay maaaring gamitin upang i-automate ang pagsubok na iyon. Halimbawa, kung nagpatupad ka ng DNSBL checking
sa Exim at gusto mong tiyaking gumagana ito, maaari mong patakbuhin ang 'swaks --pipe
"exim -bh 127.0.0.2"'. Sa isang perpektong mundo ang prosesong iyong kausap ay dapat kumilos
eksakto tulad ng isang SMTP server sa stdin at stdout. Ang anumang pag-debug ay dapat ipadala sa
stderr, na ididirekta sa iyong terminal. Sa totoong mundo swak pwede
karaniwang humahawak ng ilang debug sa stdout ng bata, ngunit walang mga garantiya kung paano
ang daming kayang hawakan.
Ang transportasyong ito ay nangangailangan ng IPC::Open2 module na bahagi ng karaniwang perl
pamamahagi. Kung ang module na ito ay hindi mai-load, ang pagtatangka na gamitin ang transport na ito ay gagawin
magresulta sa isang error at pagwawakas ng programa.
--pipe [/path/to/command and arguments]
Magbigay ng pangalan ng proseso at mga argumento sa proseso. susubukan ng swaks na mangitlog
ang proseso at makipag-ugnayan dito sa pamamagitan ng mga tubo. Kung ang argumento ay hindi isang
Ang mga executable swaks ay magpapakita ng error at lalabas.
PROTOKOL Opsyon
Ang mga opsyon na ito ay nauugnay sa layer ng protocol.
-t, --sa [email-address[,email-address,...]]
Sinasabi sa swaks na gumamit ng (mga) argumento bilang sobre-tatanggap para sa email, o prompt para sa
tatanggap kung walang ibinigay na argumento. Kung maraming tatanggap ang ibinigay at ang
Kailangan ng recipient domain para matukoy ang pagruruta sa domain ng huling recipient
ang ibinigay ay ginagamit.
Walang default na halaga para sa opsyong ito. Kung walang mga tatanggap na ibinigay sa pamamagitan ng alinman
ibig sabihin, ipo-prompt ang user na magbigay ng isa nang interactive. Ang tanging pagbubukod dito
ay kung ang isang --quit-after na halaga ay ibinigay na magiging sanhi ng smtp na transaksyon
winakasan bago kailanganin ang tatanggap.
-f, --mula sa [email-address]
Gamitin ang argumento bilang envelope-sender para sa email, o prompt user kung walang tinukoy na argumento.
Ang string <> ay maaaring ibigay na nangangahulugan ng null na nagpadala. Kung hindi tinukoy ng user ang a
address ng nagpadala ay ginagamit ang isang default na halaga. Ang domain-bahagi ng default na nagpadala ay a
pinakamahusay na hulaan ang ganap na kwalipikadong domain name ng lokal na host. Ang pamamaraan ng
ang pagtukoy sa lokal na bahagi ay nag-iiba. Sa Windows, Win32::LoginName() Ginagamit. Sa unix-
ish platform, ang $LOGNAME environment variable ay ginagamit kung ito ay nakatakda. Kung hindi
getpwuid(3) ay ginagamit. Tingnan din ang --force-getpwuid.
--ehlo, --lhlo, -h, --helo [helo-string]
String na gagamitin bilang argumento sa HELO/EHLO/LHLO na utos, o agarang gamitin kung walang argumento
tinukoy. Kung ang pagpipiliang ito ay hindi ginamit ng isang pinakamahusay na hula sa ganap na kwalipikadong pangalan ng domain
ng lokal na host ay ginagamit. Kung ang Sys::Hostname module, na bahagi ng base
pamamahagi, ay hindi magagamit ang user ay ipo-prompt para sa isang halaga ng HELO. Tandaan na
Sys::Hostname ay naobserbahan na hindi mahanap ang lokal na hostname sa tiyak
mga pangyayari. Ito ay may parehong epekto na parang Sys::Hostname ay hindi magagamit.
-q, --quit-after [stop-point]
Point kung saan dapat ihinto ang transaksyon. Kapag ang hiniling na hinto
ay naabot sa transaksyon, at sa kondisyon na ang swaks ay hindi nagkamali bago ang
pag-abot dito, magpapadala ang swaks ng "QUIT" at susubukang isara nang malinis ang koneksyon.
Ito ang mga wastong argumento at tala tungkol sa kanilang kahulugan.
KONEKTA, BANNER
Tapusin ang session pagkatapos matanggap ang greeting banner mula sa target.
FIRST-HELO, FIRST-EHLO, FIRST-LHLO
Sa isang session ng STARTTLS (ngunit hindi tls-on-connect), wakasan ang transaksyon pagkatapos
ang una sa dalawang HELO. Sa isang transaksyong hindi STARTTLS, kumikilos tulad ng HELO
(tingnan sa ibaba).
XCLIENT
Mag-quit pagkatapos maipadala ang XCLIENT
TLS Ihinto ang transaksyon kaagad pagkatapos ng negosasyon sa TLS. Tandaan na ito
nangyayari sa iba't ibang lugar depende sa kung ang STARTTLS o tls-on-connect ay
ginamit. Palagi itong humihinto pagkatapos ng punto kung saan napag-usapan ang TLS,
hindi alintana kung ito ay sinubukan.
HELO, EHLO, LHLO
Sa isang STARTTLS o XCLIENT session, huminto pagkatapos ng pangalawang HELO. Kung hindi ay huminto
pagkatapos ng una at tanging HELO.
AUTH
Umalis pagkatapos ng pagpapatunay. Ito ay palaging humihinto pagkatapos ng punto kung saan ang pagpapatunay
ay napag-usapan, hindi alintana kung ito ay sinubukan.
MAIL, MULA
Mag-quit pagkatapos maipadala ang MAIL FROM:.
RCPT, TO
Umalis pagkatapos maipadala ang RCPT TO:.
--timeout [oras]
Gamitin ang argumento bilang timeout ng transaksyon sa SMTP, o i-prompt ang user kung walang ibinigay na argumento.
Ang argumento ay maaaring isang purong digit, na bibigyang-kahulugan bilang mga segundo, o maaari
magkaroon ng specifier s o m (5s = 5 segundo, 3m = 180 segundo). Bilang isang espesyal na kaso, 0
ibig sabihin ay huwag mag-timeout sa mga transaksyon. Ang default na halaga ay 30s.
--protocol [protocol]
Tukuyin kung aling protocol ang gagamitin sa transaksyon. Ang mga wastong opsyon ay ipinapakita sa
talahanayan sa ibaba. Sa kasalukuyan ang mga 'core' na protocol ay SMTP, ESMTP, at LMTP. Sa pamamagitan ng paggamit
mga pagkakaiba-iba ng mga uri ng protocol na ito ay maaaring tukuyin ng isa ang mga default na port, kung
dapat subukan ang pagpapatunay, at ang uri ng koneksyon sa TLS na dapat
sinubukan. Ang default na protocol ay ESMTP. Ipinapakita ng talahanayang ito ang magagamit
mga argumento sa --protocol at ang mga opsyon sa bawat set bilang side effect:
SMTP
HELO, "-p 25"
SSMTP
EHLO->HELO, "-tlsc -p 465"
SSMTPA
EHLO->HELO, "-a -tlsc -p 465"
SMTPS
HELO, "-tlsc -p 465"
ESMTP
EHLO->HELO, "-p 25"
ESMTPA
EHLO->HELO, "-a -p 25"
ESMTPS
EHLO->HELO, "-tls -p 25"
ESMTPSA
EHLO->HELO, "-a -tls -p 25"
LMTP
LHLO, "-p 24"
LMTPA
LHLO, "-a -p 24"
LMTPS
LHLO, "-tls -p 24"
LMTPSA
LHLO, "-a -tls -p 24"
--pipeline
Kung sinusuportahan ito ng malayong server, subukan ang SMTP PIPELINING (RFC 2920). Ito ay
mas batang opsyon, kung nakakaranas ka ng mga problema dito mangyaring ipaalam sa may-akda.
Kabilang sa mga potensyal na lugar ng problema ang mga server na tumatanggap ng DATA kahit na walang valid
mga tatanggap (swaks dapat magpadala ng walang laman na katawan sa kasong iyon, hindi QUIT) at deadlocks sanhi
sa pamamagitan ng pagpapadala ng mga packet sa labas ng laki ng tcp window.
--force-getpwuid
Sabihin sa swaks na gamitin ang getpwuid na paraan ng paghahanap sa default na lokal na bahagi ng nagpadala
ng subukan muna ang $LOGNAME.
TLS / ENCRYPTION
Ito ay mga opsyon na nauugnay sa pag-encrypt ng transaksyon. Ang mga ito ay nasubok at
nakumpirma na gumagana sa lahat ng tatlong paraan ng transportasyon. Ang Net::SSLeay module ay ginagamit upang
magsagawa ng pag-encrypt kapag ito ay hiniling. Kung hindi mai-load ang modyul na ito, gagawin din ng swaks
huwag pansinin ang kahilingan o error sa TLS, depende sa kung opsyonal ang kahilingan.
Ang STARTTLS ay tinukoy bilang isang extension sa ESMTP protocol at magiging hindi magagamit kung
--protocol ay nakatakda sa isang variation ng smtp. Dahil hindi ito tinukoy sa protocol
mismo, --tls-on-connect ay magagamit para sa anumang uri ng protocol kung sinusuportahan ito ng target.
Ang isang lokal na sertipiko ay hindi kinakailangan para sa isang koneksyon sa TLS upang makipag-ayos. Gayunpaman, ang ilan
ginagamit ng mga server ang pagsuri sa sertipiko ng kliyente upang i-verify na pinapayagang kumonekta ang kliyente.
Ang mga swaks ay maaaring sabihan na gumamit ng isang partikular na lokal na sertipiko sa pamamagitan ng paggamit ng --tls-cert
at --tls-key na mga opsyon.
-tls
Nangangailangan ng koneksyon upang magamit ang STARTTLS. Lumabas kung hindi available ang TLS para sa anumang dahilan (hindi
na-advertise, nabigo ang negosasyon, atbp).
-tlso, --tls-opsyonal
Subukang gamitin ang STARTTLS kung available, magpatuloy sa normal na transaksyon kung TLS ay
hindi maaaring makipag-ayos sa anumang kadahilanan. Tandaan na ito ay isang semi-useless na opsyon bilang
kasalukuyang ipinapatupad dahil pagkatapos ng pagkabigo sa negosasyon ang estado ng koneksyon
ay hindi kilala. Sa ilang mga kaso, tulad ng hindi pagkakatugma ng bersyon, ang koneksyon ay dapat iwanang bilang
plaintext. Sa iba, tulad ng isang pagkabigo sa pag-verify, maaaring isipin ng panig ng server na ito
dapat magpatuloy sa pagsasalita ng TLS habang iniisip ng kliyente na ito ay plaintext. Maaaring mayroong isang
subukang magdagdag ng higit pang granular state detection sa hinaharap, ngunit sa ngayon ay magkaroon ng kamalayan
na ang mga kakaibang bagay ay maaaring mangyari sa opsyong ito kung ang TLS negotiation ay sinubukan at
nabigo.
-tlsos, --tls-optional-strict
Subukang gamitin ang STARTTLS kung available. Magpatuloy sa transaksyon kung ang TLS ay napag-usapan
matagumpay o hindi na-advertise ang STARTTLS. Kung ang STARTTLS ay ina-advertise ngunit TLS
nabigo ang mga negosasyon, ituring bilang isang pagkakamali at i-abort ang transaksyon. Dahil sa nabanggit na caveat
sa itaas, ito ay isang mas matalinong opsyon kaysa --tls-opsyonal.
--tlsc, --tls-on-connect
Magsimula kaagad ng koneksyon sa TLS sa koneksyon. Kasunod ng karaniwang kumbensyon, kung
ang pagpipiliang ito ay tinukoy ang default na port ay nagbabago mula 25 hanggang 465, kahit na ito ay maaari
ma-override pa rin ng --port na opsyon.
-tlsp, --tls-protocol SPECIFICATION
Tukuyin kung aling mga protocol ang gagamitin (o hindi gagamitin) kapag nakikipag-usap sa TLS. Sa oras na ito
pagsulat, ang magagamit na mga protocol ay sslv2, sslv3, tlsv1, tlsv1_1, at tlsv1_2. Ang
ang pagkakaroon ng mga protocol na ito ay nakasalalay sa iyong pinagbabatayan na OpenSSL library, kaya
hindi lahat ng ito ay maaaring magagamit. Ang listahan ng mga magagamit na protocol ay ipinapakita sa
output ng --dump (ipagpalagay na ang TLS ay magagamit sa lahat).
Ang string ng pagtutukoy ay isang listahan ng mga protocol na may comma-delimited na maaaring gamitin o
hindi ginagamit. Halimbawa ang 'tlsv1,tlsv1_1' ay magtatagumpay lamang kung isa sa dalawang iyon
Ang mga protocol ay magagamit sa parehong kliyente at sa server. Sa kabaligtaran,
Susubukan ng 'no_sslv2,no_sslv3' na makipag-ayos sa anumang protocol maliban sa sslv2 at sslv3.
Ang dalawang anyo ng pagtutukoy ay hindi maaaring paghaluin.
-tls-cipher CIPHER_STRING
Ang ika-argumento sa opsyong ito ay ipinapasa sa pinagbabatayan na OpenSSL library upang itakda ang listahan
ng mga katanggap-tanggap na cipher na gagamitin para sa koneksyon. Ang format ng string na ito ay
malabo sa swaks at tinukoy sa
http://www.openssl.org/docs/apps/ciphers.html#CIPHER_LIST_FORMAT. Isang maikling halimbawa
ay magiging --tls-cipher '3DES:+RSA'.
--tls-verify
Bilang default, ang swaks ay hindi gumagawa ng anumang pag-verify ng sertipiko. Setting --tls-verify will
maging sanhi ng mga swaks na subukang i-verify ang sertipiko ng server. Kung nakatakda ang opsyong ito at
hindi mabe-verify ang certificate ng server (gamitin ang system-default na CA
impormasyon, o custom na impormasyon ng CA (tingnan ang --tls-ca-path)) Ang pag-uusap sa TLS ay hindi
magtagumpay.
--tls-ca-path [ /path/to/CAfile | /path/to/CAdir/ ]
Bilang default, gagamitin ng swaks ang pinagbabatayan na OpenSSL library ng default na impormasyon ng CA para sa
pag-verify ng mga sertipiko ng server. Binibigyang-daan ka ng --tls-ca-path na tumukoy ng kahaliling
lokasyon. Tingnan mo http://www.openssl.org/docs/ssl/SSL_CTX_load_verify_locations.html para
mga detalye ng mga nilalaman ng file/direktoryo.
--tls-cert /path/to/file
Magbigay ng path sa isang file na naglalaman ng lokal na certificate swaks na dapat gamitin kung TLS ay
nakipag-ayos. Kinakailangan ang argumento ng landas ng file. Tulad ng kasalukuyang ipinatupad ang
ang certificate sa file ay dapat nasa PEM format. Makipag-ugnayan sa may-akda kung mayroong a
nakahihimok na pangangailangan para sa ASN1. Kung nakatakda ang opsyong ito, kailangan din ang --tls-key.
--tls-key /path/to/file
Magbigay ng path sa isang file na naglalaman ng lokal na pribadong key swaks na dapat gamitin kung TLS ay
nakipag-ayos. Kinakailangan ang argumento ng landas ng file. Tulad ng kasalukuyang ipinatupad ang
ang certificate sa file ay dapat nasa PEM format. Makipag-ugnayan sa may-akda kung mayroong a
nakahihimok na pangangailangan para sa ASN1. Kung nakatakda ang opsyong ito, kailangan din ang --tls-cert.
--tls-get-peer-cert [/path/to/file]
Kumuha ng kopya ng TLS peer's certificate. Kung walang ibinigay na argumento, ito ay magiging
ipinapakita sa STDOUT. Kung ang isang argumento ay ibinigay ito ay ipinapalagay na isang filesystem path
pagtukoy kung saan dapat isulat ang sertipiko. Ang naka-save na sertipiko ay maaaring
sinuri gamit ang mga karaniwang tool tulad ng openssl command. Kung ang isang file ay tinukoy nito
ang mga nilalaman ay mapapatungan.
Awtoridad
susubukan ng swaks na mag-authenticate sa target na mail server kung inutusang gawin ito. Ito
mga detalye ng seksyon na magagamit mga uri ng pagpapatunay, mga kinakailangan, mga opsyon at ang mga ito
mga pakikipag-ugnayan, at iba pang magagandang punto sa paggamit ng pagpapatunay. Dahil ang pagpapatunay ay
tinukoy bilang isang extension sa ESMTP protocol na ito ay hindi magagamit kung --protocol ay nakatakda
sa isang pagkakaiba-iba ng smtp.
Ang lahat ng paraan ng pagpapatunay ay nangangailangan ng base64 encoding. Kung ang MIME::Base64 perl module ay
Sinusubukan ng mga loadable na swaks na gamitin ito upang maisagawa ang mga pag-encode na ito. Kung ang MIME::Base64 ay hindi
ang mga available na swaks ay gagamit ng sarili nitong onboard base64 routines. Ang mga ito ay mas mabagal kaysa sa
MIME::Base64 na mga gawain at hindi gaanong nasuri, bagama't nasubok nang lubusan ang mga ito. Gamit
ang MIME::Base64 module ay hinihikayat.
Kung kinakailangan ang pagpapatunay (tingnan ang mga opsyon sa ibaba kung kailan ito kinakailangan at hindi kinakailangan) at
ang mga kinakailangan ay hindi natutugunan para sa uri ng pagpapatunay na magagamit, ang mga swaks ay nagpapakita ng isang error
at paglabas. Kasama sa dalawang paraan na maaaring mangyari ito ay ang pagpilit sa mga swak na gumamit ng isang partikular
uri ng pagpapatotoo na hindi magagamit ng mga swaks dahil sa mga nawawalang kinakailangan, o pinapayagan ang mga swaks
gumamit ng anumang uri ng pagpapatunay, ngunit ang server ay nag-a-advertise lamang ng mga uri na hindi maaaring suportahan ng swaks. Sa
ang dating kaso ay nagkakamali sa oras ng pagpoproseso ng opsyon dahil alam nito sa harap ito
hindi makakapag-authenticate. Sa huli kaso swaks ay error out sa
authentication stage ng smtp transaction since swaks will not be aware that it will
hindi makapag-authenticate hanggang sa puntong iyon.
Ang mga sumusunod ay ang mga sinusuportahang uri ng pagpapatotoo kabilang ang anumang mga indibidwal na tala at
kinakailangan.
Ang mga sumusunod na opsyon ay nakakaapekto sa paggamit ng pagpapatotoo ng swaks. Ang mga opsyong ito ay lahat ng inter-
kaugnay. Halimbawa, ang pagtukoy sa --auth-user ay nagpapahiwatig --auth at --auth-password.
Ang pagtukoy sa --auth-optional ay nagpapahiwatig --auth-user at --auth-password, atbp.
-a, --auth [auth-type[,auth-type,...]]
Mangangailangan ng swaks upang mapatotohanan. Kung walang ibinigay na argumento, anumang suportadong auth-type
na-advertise ng server ay sinubukan hanggang sa magtagumpay ang isa o mabigo ang lahat. Kung isa o higit pa
Ang mga uri ng auth ay tinukoy bilang isang argumento, ang bawat isa na sinusuportahan din ng server ay sinubukan
sa pagkakasunud-sunod hanggang sa magtagumpay ang isa o mabigo ang lahat. Ang pagpipiliang ito ay nangangailangan ng mga swaks upang mapatotohanan,
kaya kung walang mga karaniwang auth-type ang nahanap o walang mga kredensyal na magtagumpay, ang mga swaks ay nagpapakita ng isang
pagkakamali at paglabas.
Inililista ng mga sumusunod na talahanayan ang wastong mga uri ng auth
LOGIN, PLAIN
Ang mga pangunahing uri ng pagpapatunay na ito ay ganap na sinusuportahan at nasubok at walang
karagdagang mga kinakailangan
CRAM-MD5
Ang CRAM-MD5 authenticator ay nangangailangan ng Digest::MD5 module. Ito ay ganap na nasubok
at pinaniniwalaang gagana laban sa anumang server na nagpapatupad nito.
DIGEST-MD5
Ang DIGEST-MD5 authenticator (RFC2831) ay nangangailangan ng Authen::SASL module. Bersyon
20100211.0 at naunang ginamit ang Authen::DigestMD5 na mayroong ilang mga error sa antas ng protocol
na pumigil dito sa pagtatrabaho sa ilang mga server. Authen::SASL's DIGEST-MD5
mas matatag ang paghawak.
Ang pagpapatupad ng DIGEST-MD5 sa swaks ay medyo wala pa sa gulang. Ito ay kasalukuyang sumusuporta
ang uri ng qop na "auth" lang, halimbawa. Kung mayroon kang karanasan sa DIGEST-MD5 at
Gusto kong tulungan ang mga swaks na suportahan nang mas mahusay ang DIGEST-MD5, mangyaring makipag-ugnayan sa akin.
Maaaring itakda ang halaga ng "realm" ng DIGEST-MD5 protocol gamit ang --auth-extra "realm"
keyword. Kung walang ibinigay na realm, isang makatwirang default ang gagamitin.
Maaaring itakda ang mga halaga ng "digest-uri" ng DIGEST-MD5 protocol gamit ang --auth-extra
opsyon. Halimbawa, maaari kang lumikha ng digest-uri-value ng
"lmtp/mail.example.com/example.com" na may opsyong "--auth-extra
dmd5-serv-type=lmtp,dmd5-host=mail.example.com,dmd5-serv-name=example.com". Ang
"digest-uri-value" string at ang mga bahagi nito ay tinukoy sa RFC2831. Kung wala sa
ibinibigay ang mga halagang ito, gagamitin ang mga makatwirang default.
CRAM-SHA1
Ang CRAM-SHA1 authenticator ay nangangailangan ng Digest::SHA module. Ang ganitong uri ay mayroon lamang
nasubok laban sa isang hindi karaniwang pagpapatupad sa isang Exim server at maaaring
samakatuwid ay may ilang mga kakulangan sa pagpapatupad.
NTLM/SPA/MSN
Ang mga authenticator na ito ay nangangailangan ng Authen::NTLM module. Tandaan na mayroong dalawa
mga module gamit ang Authen::NTLM namespace sa CPAN. Ang pagpapatupad ng Mark Bush
(Authen/NTLM-1.03.tar.gz) ang bersyon na kailangan ng swaks. Ang ganitong uri ay naging
nasubok laban sa Exim, Communigate, and Exchange 2007.
Bilang karagdagan sa karaniwang username at password, ang uri ng pagpapatunay na ito ay maaari
kilalanin din ang isang "domain". Maaaring itakda ang domain gamit ang --auth-extra "domain"
keyword. Tandaan na hindi pa ito nasubok sa isang mail server na hindi
huwag pansinin ang DOMAIN upang ito ay maaaring maipatupad nang hindi tama.
-ao, --auth-opsyonal [auth-type[,auth-type,...]]
Ang pagpipiliang ito ay kumikilos nang kapareho sa --auth maliban na humihiling ito ng pagpapatunay
sa halip na kailanganin ito. Kung walang makikitang karaniwang mga uri ng auth o walang mga kredensyal
magtagumpay, ang swaks ay nagpapatuloy na parang hindi hiniling ang pagpapatunay.
-aos, --auth-optional-strict [auth-type[,auth-type,...]]
Ang opsyong ito ay isang kompromiso sa pagitan ng --auth at --auth-opsyonal. Kung walang karaniwang auth-
Ang mga uri ay natagpuan, ang mga swak ay kumikilos na parang --auth-opsyonal ay tinukoy at nagpapatuloy
ang transaksyon. Kung hindi masuportahan ng swaks ang hiniling na uri ng auth, hindi ito sinusuportahan ng server
mag-advertise ng anumang karaniwang uri ng auth, o kung walang mga kredensyal na magtagumpay, kumikilos ang swaks na parang
--auth ang ginamit at lumabas na may error.
-au, --auth-user [username]
Ibigay ang username na gagamitin para sa pagpapatunay, o i-prompt ang user para dito kung hindi
ibinigay ang argumento. Ang string <> ay maaaring ibigay bilang isang walang laman na username.
-ap, --auth-password [password]
Ibigay ang password na gagamitin para sa pagpapatunay, o i-prompt ang user para dito kung hindi
ibinigay ang argumento. Ang string <> ay maaaring ibigay bilang isang walang laman na password.
-ae, --auth-extra [KEYWORD=value[,...]]
Ang ilan sa mga uri ng pagpapatotoo ay nagbibigay-daan sa karagdagang impormasyon na maisama sa
proseso ng pagpapatunay. Sa halip na magdagdag ng bagong opsyon para sa bawat sulok at cranny ng
bawat authenticator, pinapayagan ng --auth-extra na opsyon ang impormasyong ito na maibigay.
Inililista ng sumusunod na talahanayan ang kasalukuyang kinikilalang mga keyword at ang mga authenticator
na gumagamit ng mga ito
kaharian, domain
Ang kaharian at mga keyword ng domain ay magkasingkahulugan. Ang paggamit ng alinman ay magtatakda ng "domain"
opsyon sa NTLM/MSN/SPA at ang opsyong "realm" sa DIGEST-MD5
dmd5-serv-type
Ang dmd5-serv-type na keyword ay ginagamit ng DIGEST-MD5 authenticator at ginagamit, sa
bahagi, upang bumuo ng digest-uri-value string (tingnan ang RFC2831)
dmd5-host
Ang dmd5-host na keyword ay ginagamit ng DIGEST-MD5 authenticator at ginagamit, sa
bahagi, upang bumuo ng digest-uri-value string (tingnan ang RFC2831)
dmd5-serv-name
Ang dmd5-serv-name na keyword ay ginagamit ng DIGEST-MD5 authenticator at ginagamit, sa
bahagi, upang bumuo ng digest-uri-value string (tingnan ang RFC2831)
-am, --auth-map [auth-alias=auth-type[,...]]
Nagbibigay ng paraan upang imapa ang mga kahaliling pangalan sa mga baseng uri ng pagpapatotoo. Kapaki-pakinabang para sa anumang
mga site na gumagamit ng mga alternatibong pangalan para sa mga karaniwang uri. Ang pag-andar na ito ay aktwal na ginagamit
sa loob upang i-map ang mga uri ng SPA at MSN sa base type na NTLM. Ang command line
argument na gayahin ito ay magiging "--auth-map SPA=NTLM,MSN=NTLM". Lahat ng auth-
Ang mga uri na nakalista sa itaas ay mga wastong target para sa pagmamapa maliban sa SPA at MSN.
-apt, --auth-plaintext
Sa halip na ipakita ang mga string ng AUTH base64 na naka-encode habang ipinapadala ang mga ito, isalin ang mga ito
sa plaintext bago i-print sa screen.
-ahp, --auth-hide-password [kapalit na string]
Kung ang opsyong ito ay tinukoy, anumang oras ang isang nababasang password ay ipi-print sa
terminal (partikular ang AUTH PLAIN at AUTH LOGIN) ang password ay pinapalitan ng isang
dummy string (o ang mga nilalaman ng "kapalit na string" kung ibinigay). Ang dummy string
ay base64 na naka-encode o hindi nakasalalay sa --auth-plaintext na opsyon.
Tandaan na ang --auth-hide-password ay katulad, ngunit hindi kapareho, sa --protect-prompt
opsyon. Pinoprotektahan ng dating ang mga password mula sa pagpapakita sa transaksyon ng SMTP
hindi alintana kung paano sila pinasok. Pinoprotektahan ng huli ang mga sensitibong string kapag ang
i-type sila ng user sa terminal, anuman ang gagamitin ng string.
XCLIENT Opsyon
Ang XCLIENT ay isang extension ng SMTP na ipinakilala ng proyekto ng Postfix. Pinapayagan ng XCLIENT a
(properly-authorized) client na sabihin sa isang server na gumamit ng kahaliling impormasyon, gaya ng IP
address o hostname, para sa kliyente. Nagbibigay-daan ito sa mas madaling mga landas para sa pagsubok ng mail
mga pagsasaayos ng server. Ang buong detalye sa protocol ay makukuha sa
http://www.postfix.org/XCLIENT_README.html.
--xclient-addr [VALUE]
--xclient-name [VALUE]
--xclient-port [VALUE]
--xclient-proto [VALUE]
--xclient-helo [VALUE]
--xclient-login [VALUE]
--xclient-reverse-name [VALUE]
Tinutukoy ng mga opsyong ito ang mga XCLIENT attrubute na dapat ipadala sa target na server. Kung
Hindi ibinigay ang [VALUE], ipo-prompt at babasahin ng mga swaks ang value sa STDIN. Tingnan mo
http://www.postfix.org/XCLIENT_README.html para sa opisyal na dokumentasyon para sa kung ano ang
ibig sabihin ng mga attribute at ang mga posibleng value ng mga ito, kasama ang espesyal na "[UNAVAILABLE]" at
"[TEMPUNAVAIL]" na mga halaga.
Sa pamamagitan ng simpleng halimbawa, ang pagtatakda ng "--xclient-name foo.example.com --xclient-addr
192.168.1.1" ay magiging sanhi ng mga swaks na magpadala ng SMTP command na "XCLIENT NAME=foo.example.com
ADDR=192.168.1.1".
Tandaan na ang attribute na "REVERSE_NAME" ay mukhang hindi lumalabas sa opisyal
dokumentasyon. May isang mailing list thread na nagdodokumento nito, makikita sa
http://comments.gmane.org/gmane.mail.postfix.user/192623.
Ang mga opsyong ito ay maaaring lahat ihalo sa isa't isa, at maaaring ihalo sa --xclient
opsyon (tingnan sa ibaba).
--xclient [XCLIENT_STRING]
Ito ang "libreng form" na opsyon na XCLIENT. Anuman ang halaga na ibinigay para sa XCLIENT_STRING
ay ipapadala sa verbatim bilang argumento sa XCLIENT smtp command. Halimbawa, kung
"--xclient 'NAME= ADDR=192.168.1.1 FOO=bar'" ay ginagamit, ang swaks ay magpapadala ng SMTP command
"XCLIENT NAME= ADDR=192.168.1.1 FOO=bar". Ang pangunahing bentahe nito sa higit pa
ang mga partikular na opsyon sa itaas ay walang XCLIENT syntax validation dito. Ito
nagbibigay-daan sa iyong magpadala ng di-wastong XCLIENT sa target na server para sa pagsubok. Kung hindi
Ang XCLIENT_STRING ay ipinasa sa command line, ang mga swaks ay magpo-prompt at magbabasa ng value sa
STDIN.
Ang --xclient na opsyon ay maaaring malayang ihalo sa --xclient-* na mga opsyon sa itaas. Kung
"--xclient-addr 192.168.0.1 --xclient 'FOO=bar NAME=wind'" ay ibinibigay sa swaks, "XCLIENT
ADDR=192.168.0.1 FOO=bar NAME=wind" ay ipapadala sa target na server.
--xclient-opsyonal
--xclient-optional-strict
Sa normal na operasyon, ang pagtatakda ng isa sa mga --xclient* na opsyon ay magdudulot ng matagumpay
XCLIENT transaksyon na magaganap upang magpatuloy (iyon ay, XCLIENT ay kailangang
na-advertise, ang lahat ng hinihiling ng user na katangian ay kailangang na-advertise, at ang
kailangang tanggapin ng server ang kahilingan ng XCLIENT ng swaks). Binabago iyon ng mga opsyong ito
pag-uugali. --xclient-optional ay nagsasabi sa mga swak na magpatuloy nang walang kondisyong lampas sa XCLIENT
yugto ng transaksyon sa SMTP, hindi alintana kung ito ay matagumpay.
--xclient-optional-strict ay katulad ngunit mas butil. Ang mahigpit na bersyon ay
magpatuloy sa XCLIENT ay hindi na-advertise, ngunit mabibigo kung ang XCLIENT ay sinubukan ngunit ginawa
hindi magtagumpay.
DATA Opsyon
Nauukol ang mga opsyong ito sa mga nilalaman para sa bahagi ng DATA ng transaksyon sa SMTP.
-d, --data [data-portion]
Gamitin ang argumento bilang buong nilalaman ng DATA, o i-prompt ang user kung walang tinukoy na argumento.
Kung ang argument na '-' ay ibinigay ang data ay mababasa mula sa STDIN. Kung meron mang iba
argument ay ibinigay at ito ay kumakatawan sa pangalan ng isang open-able na file, ang mga nilalaman ng
ang file ay gagamitin. Ang anumang iba pang argumento ay magiging mismo para sa mga nilalaman ng DATA.
Ang halaga ay maaaring nasa isang linya, na may \n (ascii 0x5c, 0x6e) na kumakatawan kung saan
dapat ilagay ang mga line break. Sipi ang mga nangungunang tuldok. Ang pagsasara ng tuldok ay hindi
kinakailangan ngunit pinapayagan. Ang default na halaga para sa opsyong ito ay "Petsa: %DATE%\nPara kay:
%TO_ADDRESS%\nMula sa: %FROM_ADDRESS%\nPaksa: pagsubok %DATE%\nX-Mailer: swaks v$p_version
jetmore.org/john/code/swaks/\n%NEW_HEADERS%\n%BODY%\n".
Ang napakapangunahing pag-parse ng token ay ginagawa sa bahagi ng DATA. Tingnan ang --use-old-data-token
para sa mga detalye tungkol sa mga single-character na token na minarkahan bilang hindi na ginagamit. Ang mga sumusunod
Ipinapakita ng talahanayan ang mga kinikilalang token at ang kanilang mga kapalit na halaga:
%FROM_ADDRESS%
Pinalitan ng envelope-sender. Pinapalitan ang hindi na ginagamit na %F token.
%PAGTUUNAN NG PANSIN%
Pinalitan ng sobre-tatanggap (mga). Pinapalitan ang hindi na ginagamit na %T token.
%DATE%
Pinalitan ng kasalukuyang oras sa isang format na angkop para sa pagsasama sa Petsa:
header. Tandaan na sinusubukan nitong gamitin ang karaniwang module na Time::Local para sa timezone
mga kalkulasyon. Kung hindi available ang module na ito ang string ng petsa ay nasa GMT.
Pinapalitan ang hindi na ginagamit na %D token.
%NEW_HEADERS%
Pinalitan ng mga nilalaman ng --add-header na opsyon. Kung ang --add-header ay hindi
tinukoy na ang token na ito ay tinanggal lamang. Pinapalitan ang hindi na ginagamit na %H token.
%BODY%
Pinalitan ng value na tinukoy ng --body na opsyon. Tingnan ang --body para sa default.
Pinapalitan ang hindi na ginagamit na %H token.
--use-old-data-token
Sa mga nakaraang bersyon ng swaks ang mga DATA token gaya ng inilarawan sa --data na opsyon sa itaas
gumamit ng mga single-character na token (hal, %F). Ang mga ito ay hindi isang magandang pagpipilian para sa default
mga token, at napatunayang nakakagulo lalo na sa mga naka-encode, hindi Ingles na mga wika kung saan
maaaring karaniwan ang mga kumbinasyon ng character na ito. Ang mga single-character na token ay
pinalitan ng mga bersyon na nakalista sa itaas na medyo hindi gaanong nagkakamali. Ang pagpapanatili ng
ang mga lumang token at ang pagsasama ng opsyong ito para i-activate ang mga ito ay inilaan bilang a
pansamantalang tulong sa mga user na mayroong kasalukuyang message corpus gamit ang mga lumang token. Ang
dapat isaalang-alang ang mga single-character na token at ang --use-old-data-tokens na opsyon
hindi na ginagamit at malamang na maalis sa susunod na release.
-dab, --dump-as-body
Kung ang --dump-as-body ay ginagamit at walang ibang opsyon na ginagamit upang baguhin ang default na katawan ng
ang mensahe, ang katawan ay pinapalitan ng output na katulad ng output ng kung ano ang
ibinigay ng --dump. --dump's paunang programa capability stanza ay hindi ipinapakita, at
ang seksyong "data" ay hindi kasama. Bukod pa rito, palaging may kasamang mga password ang --dump.
Bilang default --dump-as-body ay hindi kasama ang mga password, bagama't maaari itong baguhin gamit ang
--dump-as-body-shows-password.
-dabsp, --dump-as-body-shows-password
Dahilan sa --dump-as-body na magsama ng mga plaintext na password. Ang pagpipiliang ito ay hindi inirerekomenda.
Ang pagpipiliang ito ay nagpapahiwatig --dump-as-body.
--katawan [body-specification]
Tukuyin ang katawan ng email. Ang default ay "Ito ay isang pagsubok na pagpapadala ng koreo". Kung hindi
argument sa --body ay ibinigay, prompt upang magbigay ng isa interactive. Kung ang '-' ay ibinibigay,
babasahin ang katawan mula sa karaniwang input. Kung may iba pang tekstong ibinigay at ang teksto
kumakatawan sa isang open-able na file, ang nilalaman ng file na iyon ay ginagamit bilang katawan. Kung ito
ay hindi kumakatawan sa isang open-able na file, ang text mismo ay ginagamit bilang katawan.
Kung ang mensahe ay pinilit sa MIME na format (tingnan ang --attach) ang argumento sa opsyong ito
isasama ang hindi naka-encode bilang unang bahagi ng MIME. Ang uri ng nilalaman nito ay palaging magiging
teksto/payak.
--attach [attachment-specification]
Kapag ang isa o higit pang --attach na opsyon ay ibinigay, ang mensahe ay papalitan ng a
multipart/mixed MIME message. Ang mga argumento sa --attach ay pinoproseso ang parehong bilang
--body patungkol sa stdin, mga nilalaman ng file, atbp. --attach ay maaaring ibigay ng maramihang
beses upang lumikha ng maramihang mga attachment. Bilang default, ang bawat attachment ay nakakabit bilang a
application/octe-stream na file. Tingnan ang --attach-type para sa pagbabago ng gawi na ito.
Kung tinukoy ang isang filename, isasama sa pag-encode ng MIME ang pangalan ng file na iyon. Tingnan mo
--attach-name para sa higit pang detalye sa pagpapangalan ng file.
Legal para sa '-' (STDIN) na tukuyin bilang argument nang maraming beses (isang beses para sa
--body at maraming beses para sa --attach). Sa kasong ito, ang parehong nilalaman ay magiging
kalakip sa bawat oras na ito ay tinukoy. Ito ay kapaki-pakinabang para sa paglakip ng parehong nilalaman
na may maraming uri ng MIME.
--attach-type [mime-type]
Bilang default, ang content na nakakabit ng MIME sa isang mensahe na may opsyong --attach ay
naka-encode bilang application/octet-stream. Binabago ng --attach-type ang uri ng mime para sa bawat isa
--attach na opsyon na sumusunod dito. Maaari itong tukuyin ng maraming beses.
--attach-name [pangalan]
Itinatakda ng opsyong ito ang filename na isasama sa bahagi ng MIME na ginawa para sa
susunod na --attach na opsyon. Kung walang nakatakdang argumento para sa opsyong ito, hindi ito nagdudulot ng filename
impormasyong isasama para sa susunod na bahagi ng MIME, kahit na mabuo ito ng mga swaks
mula sa lokal na pangalan ng file.
-ah, --add-header [header]
Ang opsyong ito ay nagbibigay-daan sa mga header na maidagdag sa DATA. Kung ang %H ay nasa DATA ito
ay pinalitan ng argumento sa opsyong ito. Kung wala ang %H, ang argumento ay
ipinasok sa pagitan ng unang dalawang magkasunod na bagong linya sa DATA (iyon ay, ito ay
ipinasok sa dulo ng umiiral na mga header).
Ang opsyon ay maaaring tukuyin nang maraming beses o isang solong oras na may maramihang
mga header na pinaghihiwalay ng literal na '\n' string. Kaya, "--add-header 'Foo: bar' --add-header
'Baz: foo'" at "--add-header 'Foo: bar\nBaz: foo'" ay nagtatapos sa pagdaragdag ng parehong dalawa
mga header.
--header [header-and-data], --h-Header [data]
Nagbibigay-daan ang mga opsyong ito ng paraan para baguhin ang mga header na mayroon na sa DATA. '--header
Ang "Subject: foo"' at '--h-Subject foo' ay katumbas. Kung wala pa ang header
umiiral sa data kung gayon ang argumentong ito ay kumikilos nang magkapareho sa --add-header. Gayunpaman, kung
ang header ay umiiral na ito ay pinalitan ng isang tinukoy.
-g Kung tinukoy, babasahin ng mga swaks ang halaga ng DATA para sa mail mula sa STDIN. Ito ay
katumbas ng "--data -". Kung mayroong From_ line sa email, ito ay aalisin
(ngunit tingnan ang -nsf na opsyon). Kapaki-pakinabang para sa paghahatid ng tunay na mensahe (naimbak sa mga file) sa halip
ng paggamit ng mga halimbawang mensahe.
--no-data-fixup, -ndf
Pinipilit ng opsyong ito ang mga swak na huwag gumawa ng masahe sa bahagi ng DATA ng email. Ito
kasama ang pagpapalit ng token, From_ stripping, trailing-dot addition, --body/attachment
pagsasama, at anumang mga karagdagan ng header. Ang pagpipiliang ito ay talagang kapaki-pakinabang lamang kapag ginamit kasama ng
--data, dahil ang panloob na default na bahagi ng DATA ay gumagamit ng mga token.
--walang-strip-mula sa, -nsf
Huwag hubarin ang From_ line mula sa DATA na bahagi, kung naroroon.
oUTPUT Opsyon
Bilang default, ang swaks ay nagbibigay ng transcript ng mga transaksyon nito sa tumatawag nito (STDOUT/STDERR).
Nilalayon ng transcript na ito na maging tapat na representasyon hangga't maaari ng transaksyon
kahit na binabago nito ang output na ito sa pamamagitan ng pagdaragdag ng mga prefix ng impormasyon sa mga linya at ni
pagbibigay ng mga plaintext na bersyon ng mga transaksyon sa TLS
Ang "mga prefix ng impormasyon" ay tinutukoy bilang mga pahiwatig ng transaksyon. Ang mga pahiwatig na ito ay
sa una ay binubuo ng mga markang linya na output ng swaks mismo, alinman
mga mensahe ng impormasyon o error, at ang mga nagsasaad ng linya ng data na aktwal na ipinadala o
natanggap sa isang transaksyon. Ang talahanayan na ito ay nagpapahiwatig ng mga pahiwatig at ang kanilang mga kahulugan:
=== Nagsasaad ng linyang nagbibigay-impormasyon na nabuo ng swaks
*** Nagsasaad ng error na nabuo sa loob ng swaks
-> Nagsasaad ng inaasahang linya na ipinadala ng swaks sa target na server
~> Nagsasaad ng TLS-encrypted, inaasahang linya na ipinadala ng swaks sa target na server
**> Nagsasaad ng hindi inaasahang linya na ipinadala ng swaks sa target na server
*~> Nagsasaad ng TLS-encrypted, hindi inaasahang linya na ipinadala ng swaks sa target na server
> Nagsasaad ng hilaw na bahagi ng pagsubok na ipinadala ng mga swaks sa isang target na server (tingnan ang --show-raw-text).
Walang konsepto ng "inaasahan" o "hindi inaasahang" sa antas na ito.
<- Nagsasaad ng inaasahang linya na ipinadala ng target na server sa swaks
<~ Nagsasaad ng TLS-encrypted, inaasahang linya na ipinadala ng target na server sa swaks
<** Nagsasaad ng hindi inaasahang linya na ipinadala ng target na server sa swaks
<~* Nagsasaad ng TLS-encrypted, hindi inaasahang linya na ipinadala ng target na server sa swaks
< Nagsasaad ng hilaw na tipak ng text na natanggap ng mga swaks mula sa isang target na server (tingnan ang
--show-raw-text). Walang konsepto ng "inaasahan" o "hindi inaasahang" sa antas na ito.
Kinokontrol ng mga sumusunod na opsyon kung ano at paano ipinapakita ang output sa tumatawag.
-n, --suppress-data
Binubuod ang bahagi ng DATA ng transaksyon sa SMTP sa halip na i-print ang bawat linya.
Ang pagpipiliang ito ay napaka-kapaki-pakinabang, malapit sa kinakailangan, kapag gumagamit ng swaks upang magpadala ng tiyak
pagsubok ng mga email. Ang mga email na may mga attachment, halimbawa, ay mabilis na matatalo sa isang terminal
kung ang DATA ay hindi pinigilan.
-stl, --show-time-lapse [i]
Ipakita ang paglipas ng oras sa pagitan ng mga pares ng pagpapadala/pagtanggap. Ang pagpipiliang ito ay pinaka-kapaki-pakinabang kapag
Oras::HiRes ay magagamit, kung saan ang paglipas ng oras ay ipapakita sa
ikasalibo ng isang segundo. Kung ang Time::HiRes ay hindi available o ang "i" ay ibinigay bilang argumento
ang lapse ay ipapakita sa integer na mga segundo lamang.
-nih, --walang-impormasyon-pahiwatig
Huwag ipakita ang pahiwatig ng transaksyon para sa mga transaksyong nagbibigay-kaalaman. Ito ang pinaka
kapaki-pakinabang kapag kailangan upang kopyahin ang ilang bahagi ng mga linya ng impormasyon, halimbawa ang
output ng sertipiko mula sa --tls-get-peer-cert.
-nsh, --walang-send-hints
-nrh, --walang-nakatanggap-mga-pahiwatig
-nth, --walang mga pahiwatig
--no-send-hints at --no-receive-hints ay pinipigilan ang prefix ng transaksyon mula sa pagpapadala at
makatanggap ng mga linya, ayon sa pagkakabanggit. Madalas itong kapaki-pakinabang kapag kinokopya ang ilang bahagi ng
transaksyon para sa paggamit sa ibang lugar (halimbawa, "--no-send-hints --hide-receive
--hide-informational" ay isang kapaki-pakinabang na paraan upang makuha lamang ang mga command sa panig ng kliyente para sa isang naibigay
transaksyon). --no-hints ay kapareho ng pagtukoy sa parehong --no-send-hints at
--walang-makatanggap-pahiwatig.
Huwag magpakita ng mga pahiwatig ng transaksyon (kapaki-pakinabang kasabay ng -hr para makagawa ng copy/paste-able
mga transaksyon).
-raw, --show-raw-text
Ang opsyong ito ay magpi-print ng hex dump ng raw data na ipinadala at natanggap ng mga swaks. Bawat hex
Ang dump ay ang mga nilalaman ng isang solong read o write sa network. Ito dapat
kapareho sa kung ano ang ipinapakita na (maliban sa \r character
inaalis). Ang pagpipiliang ito ay kapaki-pakinabang sa pagtingin sa mga detalye kapag ang mga server ay nagpapadala ng maraming
ng data sa mga solong packet, o paghahati-hati ng mga indibidwal na linya sa maraming packet. Kung
kailangan mo talagang magpalalim sa lugar na iyon malamang na mas mahusay ka sa isang pakete
sniffer, ngunit ang pagpipiliang ito ay isang magandang unang hakbang upang makakita ng kakaibang mga isyu sa koneksyon.
--output-file
--output-file-stdout
--output-file-stderr
Ang mga opsyong ito ay nagpapahintulot sa user na magpadala ng output sa mga file sa halip na stdout/stderr. Ang
ang unang pagpipilian ay nagpapadala ng pareho sa parehong file. Ang mga argumento ng &STDOUT at &STDERR ay
espesyal na ginagamot, na tumutukoy sa "normal" na mga hawakan ng file, kaya "--output-file-stderr
Ire-redirect ng '&STDOUT'" ang STDERR sa STDOUT.
-pp, --protect-prompt
Huwag i-echo ang input ng user sa mga prompt na potensyal na sensitibo (sa ngayon lang
password sa pagpapatunay). Tingnan din ang --auth-hide-password
-hr, --itago-tanggapin
Huwag magpakita ng mga linyang ipinadala mula sa malayong server na natatanggap ng mga swaks
-hs, --itago-ipadala
Huwag magpakita ng mga linyang ipinapadala ng swaks sa remote server
-hi, --itago-impormasyon
Huwag magpakita ng mga linyang nagbibigay-kaalaman na hindi error mula sa swaks mismo.
-ha, --itago-lahat
Huwag magpakita ng anumang nilalaman sa terminal.
-S, --tahimik [level]
Dahilan para tumahimik si swaks. Kung walang ibinigay na argumento o kung ang argumento ng "1" ay ibinigay,
walang i-print na output maliban kung/hanggang sa magkaroon ng error, pagkatapos ay ipapakita ang lahat ng output. Kung ang
Ang argumento ng "2" ay ibinigay, tanging mga error sa pag-print. Kung ang "3" ay ibinigay, hindi magpakita ng output kailanman.
--suporta
Mga kakayahan sa pag-print at paglabas. Ang ilang partikular na feature ay nangangailangan ng mga hindi karaniwang perl module.
Sinusuri ng mga opsyong ito kung ang mga module na ito ay naroroon at ipinapakita kung alin
magagamit ang functionality at alin ang hindi, at aling mga module ang kailangang idagdag
upang makuha ang nawawalang pag-andar.
--tambakan
Ang pagpipiliang ito ay nagiging sanhi ng mga swak na i-print ang mga resulta ng pagpoproseso ng opsyon, kaagad bago
ipapadala sana ang mail. Walang mail na ipapadala kapag ginamit ang --dump. Tandaan na
Ang --dump ay itinuturing na isang purong self-diagnosis tool at walang pagsisikap na ginawa o kalooban
kailanman ginawa upang i-mask ang mga password sa --dump output.
- Tumulong
Ipakita ang impormasyon ng tulong na ito.
--bersyon
Ipakita ang impormasyon ng bersyon.
PAMPABILIDAD
MGA SISTEMA NG OPERATING
Ang program na ito ay pangunahing inilaan para sa paggamit sa unix-like operating system, at ito
dapat gumana sa anumang makatwirang bersyon nito. Ito ay binuo at nasubok sa
Solaris, Linux, at Mac OS X at kumpleto ang feature sa lahat ng ito.
Ang program na ito ay kilala na nagpapakita ng pangunahing pag-andar sa Windows gamit
ActiveState's Perl. Hindi pa ito ganap na nasubok. Kilala sa trabaho ang mga pangunahing SMTP
functionality at ang LOGIN, PLAIN, at CRAM-MD5 na mga uri ng auth. Ang hindi kilala ay anumang TLS
functionality at ang NTLM/SPA at DIGEST-MD5 na mga uri ng auth.
Dahil dapat gumana ang program na ito kahit saan gumagana ang Perl, gusto kong malaman ang tungkol sa
anumang bagong operating system na lubusan mong nagamit ng swaks pati na rin ang anumang mga problema
nakatagpo sa isang bagong OS.
MGA MAIL SERVER
Ang program na ito ay halos eksklusibong binuo laban sa mga Exim mail server. Ito ay naging
basta-basta ginagamit ng may-akda, bagaman hindi lubusang nasubok, sa Sendmail, Smail,
Exchange, Oracle Collaboration Suite, qpsmtpd, at Communigate. Dahil lahat
Ang functionality sa swaks ay batay sa mga kilalang pamantayan na dapat itong gumana sa anumang patas
modernong mail server. Kung may nakitang problema, mangyaring alertuhan ang may-akda sa address
sa ibaba.
EXIT MGA CODE
0 walang naganap na error
1 error sa pag-parse ng mga opsyon sa command line
2 error sa pagkonekta sa malayong server
3 hindi kilalang uri ng koneksyon
4 habang tumatakbo gamit ang uri ng koneksyon ng "pipe", nakamamatay na problema sa pagsulat o pagbabasa mula sa
proseso ng bata
5 habang tumatakbo gamit ang uri ng koneksyon ng "pipe", ang proseso ng bata ay namatay nang hindi inaasahan. Ito
ay maaaring mangahulugan na ang program na tinukoy sa --pipe ay hindi umiiral.
6 Sarado ang koneksyon nang hindi inaasahan. Kung ang pagsasara ay nakita bilang tugon sa 'QUIT'
Nagpapadala ang swaks kasunod ng hindi inaasahang tugon, ang error code para sa hindi inaasahang iyon
tugon ang ginagamit sa halip. Halimbawa, kung ang isang mail server ay nagbabalik ng 550 na tugon sa a
MAIL FROM: at pagkatapos ay agad na isinasara ang koneksyon, nakita ng swaks na ang
ang koneksyon ay sarado, ngunit gumagamit ng mas tiyak na exit code 23 upang i-detalye ang katangian ng
ang kabiguan. Kung sa halip ay nagbabalik ang server ng 250 code at pagkatapos ay agad na isasara ang
connection, gagamitin ng swaks ang exit code 6 dahil walang mas specific na exit
code.
10 error sa mga kinakailangan (hindi magagamit ang kinakailangang module)
21 error sa pagbabasa ng paunang banner mula sa server
22 error sa transaksyon ng HELO
23 error sa MAIL transaction
24 walang tinatanggap na RCPT
25 server ay nagbalik ng error sa kahilingan sa DATA
26 server ay hindi tumanggap ng mail kasunod ng data
27 server ay nagbalik ng error pagkatapos ng normal-session na kahilingang huminto
28 error sa AUTH transaction
29 error sa TLS transaction
32 error sa EHLO kasunod ng TLS negotiation
33 error sa XCLIENT transaction
34 error sa EHLO kasunod ng XCLIENT
TUNGKOL ANG NAME
Ang pangalang "swaks" ay isang (sort-of) acronym para sa "SWiss Army Knife Smtp". Pinili itong maging
medyo naiiba at nabibigkas. Habang ang "swaks" ay natatangi bilang pangalan ng isang software
package, mayroon itong iba, hindi-software na mga kahulugan. Mangyaring magpadala ng iba pang gamit ng "swak" o
"swaks" para sa pagsasama.
"Selyado ng Isang Halik"
Ang mga SWAK/SWAK ay lumalabas paminsan-minsan sa internet na may kahulugang "may pag-ibig".
masama / mahirap / may sakit (Afrikaans)
Nakita ito sa headline na "SA se bes en swaks gekledes noong 2011", na isinalin bilang
"pinakamahusay at pinakamasama ang pananamit" ng mga katutubong nagsasalita. Hindi gusto ng Google Translate ang "swaks
gekledes", ngunit isasalin nito ang "swak" bilang "mahirap" at "swak geklede" bilang "masama ang pananamit".
MAKIPAG-UGNAYAN
[protektado ng email]
Mangyaring gamitin ang address na ito para sa pangkalahatang pakikipag-ugnayan, mga tanong, mga patch, mga kahilingan, atbp.
[protektado ng email]
Kung gusto mong mailagay sa isang listahan para makatanggap ng mga notification kapag may bagong bersyon ng
Ang swaks ay inilabas, mangyaring magpadala ng email sa address na ito.
http://www.jetmore.org/john/code/swaks/
Ang mga log ng pagbabago, tulong na ito, at ang pinakabagong bersyon ay makikita sa link na ito.
Gumamit ng swaks online gamit ang mga serbisyo ng onworks.net
