📄 licemail.tcl
字号:
#
# SYNOPSIS
# .tS
# onMailSend()
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: 1 if successful
#
# ERRORS: N/A
#
proc onMailSend {} {
global setupVals outFileName
#initialize everything
set retVal 1
set attachments ""
set bccList ""
set server ""
set toList ""
set sender ""
set ccList ""
set subject ""
set msgContents "$setupVals(mailMsg)"
set mailDate [clock format [clock second] -format "%a, %d %h %Y %X"]
if { [isGUImode] } {
set server [controlValuesGet mailConfirmDlg.smtpEdit]
set toList [controlValuesGet mailConfirmDlg.toEdit]
set sender [controlValuesGet mailConfirmDlg.fromEdit]
set ccList $sender
set subject [controlValuesGet mailConfirmDlg.subjectEdit]
# sender address must be entered
if {$sender == ""} {
messageBox [strTableGet 3356_LICENSE_WARN]
controlFocusSet mailConfirmDlg.fromEdit
return 0
}
# check email address(es) format
set isValid 1
set badEmail ""
foreach email $sender {
if { ![regexp {^[a-zA-Z0-9].*@.*} $email] } {
append badEmail "$email "
set isValid 0
set sender ""
}
}
if { ! $isValid } {
messageBox "Error: Invalid email address(es) format: $badEmail\n"
controlFocusSet mailConfirmDlg.fromEdit
return 0
}
# server name must be entered if SMTP
if {$server == "" && [controlValuesGet mailConfirmDlg.smtpButt] == "1"} {
messageBox [strTableGet 1541_MAIL_SERVER]
set retVal 0
}
} else { #TEXT MODE
puts "\n\n*******************"
puts "Mail Confirmation"
puts "*******************\n\n"
set isSMTP 0
set question "sender"
while {[string compare $question "done"] != 0} {
switch $question {
"sender" {
puts [strTableGet LICEMAIL_SENDMAIL_SENDER]
set ret [prompt]
switch -regexp -- $ret {
"^-$" {
pageCreate(licEmail)
return 0
}
"^$" {
puts "Error: [strTableGet 3356_LICENSE_WARN]"
while {[prompt "Press <Enter> to continue."] != "" } {
}
}
"^[eE][xX][iI][tT]$" {
return 0
}
default {
set isValid 1
set badEmail ""
foreach email $ret {
if { ![regexp {^[a-zA-Z0-9].*@.*} $email] } {
append badEmail "$email "
set isValid 0
}
}
if { $isValid } {
set sender $ret
set question "server"
} else {
puts "Error: Invalid email address(es) format: $badEmail\n"
set question "sender"
}
}
}
}
"server" {
puts [strTableGet LICEMAIL_SENDMAIL_SERVER]
set ret [prompt]
switch -regexp -- $ret {
"^-$" {
set question "sender"
}
"^1$" {
set server $ret
set isSMTP 1
set question "host"
}
"^2$" {
set server ""
set question "confirm"
}
"^[eE][xX][iI][tT]$" {
return 0
}
default {
puts "Error: Invalid input."
while {[prompt "Press <Enter> to continue."] != "" } {
}
}
}
}
"host" {
puts [strTableGet LICEMAIL_SENDMAIL_HOST]
set ret [prompt]
switch -regexp -- $ret {
"^-$" {
set question "server"
}
"^$" {
set server "mailhost"
set question "confirm"
}
"^[eE][xX][iI][tT]$" {
return 0
}
default {
set server $ret
set question "confirm"
}
}
}
"confirm" {
puts [strTableGet LICEMAIL_SENDMAIL_CONFIRM]
set ret [prompt]
switch -regexp -- $ret {
"^-$" {
if { $isSMTP } {
set isSMTP 0
set question "host"
} else {
set question "server"
}
}
"^$" { set question "done" }
"^[eE][xX][iI][tT]$" { return 0 }
default { }
}
}
"done" {
set retVal 1
}
}
}
set toList [strTableGet 1220_MAIL_TO]
set ccList $sender
set subject [strTableGet 1230_MAIL_SUBJECT]
}
if {[isUnix]} {
set recipients [concat $toList $ccList $bccList]
if [catch {exec mail -s $subject $recipients < $outFileName} error] {
if [catch {exec mail $recipients < $outFileName} e] {
if { [isGUImode] } {
messageBox [strTableGet 1240_MAIL_ERROR]
} else {
puts "Error: [strTableGet 1240_MAIL_ERROR]"
}
return 0
}
}
if { [isGUImode] } {
messageBox [strTableGet 1250_MAIL_OK]
windowClose mailConfirmDlg
} else {
puts "[strTableGet 1250_MAIL_OK]\n"
}
set setupVals(mailDlgRet) $retVal
return $retVal
} else {
beginWaitCursor
if {[controlValuesGet mailConfirmDlg.smtpButt] == "0"} {
set mailCommand {mapiMailSend $toList $ccList $bccList \
$subject $msgContents $attachments}
} {
set mailCommand {smtpMailSend $mailDate $sender $toList $ccList \
$bccList $subject $msgContents $server $attachments}
set msgContents [split $msgContents \n]
}
if [catch $mailCommand error] {
endWaitCursor
messageBox -stop [strTableGet 1240_MAIL_ERROR]
#messageBox -stop $error
} {
endWaitCursor
messageBox -info [strTableGet 1250_MAIL_OK]
windowClose mailConfirmDlg
}
}
set setupVals(mailDlgRet) $retVal
return $retVal
}
#############################################################################
#
# mailSendInit() - initialize "Mail Confirmation" dialog
#
# This procedure initializes "Mail Confirmation" dialog
#
# SYNOPSIS
# .tS
# mailSendInit()
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#
proc mailSendInit {} {
controlValuesSet mailConfirmDlg.toEdit [strTableGet 1220_MAIL_TO]
controlValuesSet mailConfirmDlg.subjectEdit [strTableGet 1230_MAIL_SUBJECT]
controlValuesSet mailConfirmDlg.smtpEdit "mailhost"
#controlValuesSet mailConfirmDlg.smtpButt 1
controlCheckSet mailConfirmDlg.smtpButt 1
}
#############################################################################
#
# onSmtp() - a callback function when SMTP radio button is selected
#
# This procedure is a callback function when SMTP radio button is selected
#
# SYNOPSIS
# .tS
# onSmtp()
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#
proc onSmtp {} {
controlEnable mailConfirmDlg.smtpEdit 1
}
#############################################################################
#
# onMapi() - a callback function when MAPI radio button is selected
#
# This procedure is a callback function when MAPI radio button is selected
#
# SYNOPSIS
# .tS
# onMapi()
# .tE
#
# PARAMETERS: N/A
#
# RETURNS: N/A
#
# ERRORS: N/A
#
proc onMapi {} {
controlEnable mailConfirmDlg.smtpEdit 0
}
######################################################################
# Dialog Text Messages
######################################################################
set strTable(LICEMAIL_MSG) \
"This information will be written to"
set strTable(LICEMAIL_SENDMAIL_SENDER) \
"Please enter the return email address. If you wish to enter\
additional email addresses, please separate them by white spaces"
set strTable(LICEMAIL_CONTACT_INFO) \
"For further contact information, please visit\
http://www.windriver.com/license_admin"
set strTable(LICEMAIL_SENDMAIL_SERVER) \
"Please select Mail Protocol\n1 - SMTP ; 2 - MAPI"
set strTable(LICEMAIL_SENDMAIL_HOST) \
"Please enter SMTP host. \[mailhost\]"
set strTable(LICEMAIL_SENDMAIL_CONFIRM) \
"Press \<Return\> to send license request information to Wind River\
or enter \"-\" to go back to make changes."
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -