⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 licemail.tcl

📁 windml3.0.3
💻 TCL
📖 第 1 页 / 共 2 页
字号:
#
# 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 + -