'作者:凌陈亮www.lingchenliang.com(QQ:57404811)
'函数名:gw_sendmail()
'作用:利用Jmail4.5组件发送EMail
'参数:
'tomail:收件人email邮箱地址。
'subject:邮件标题。
'body:邮件内容。
'如果发送成功,函数将返回True,否则返回False
function gw_sendmail(tomail,subject,body)
dim jmail,smail,smail_pwd,fromname
smail = "57404811@qq.com" '设定发件人邮箱帐号
smail_pwd = "***" '设定发件人邮箱密码
fromname = "**网站" '指定发件人,可为email(如:57404811@qq.com),也可为名称(如:**网站)
set jmail = Server.createobject("jmail.message") '创建JMAIL对象
jmail.silent = true '屏蔽例外错误,true表示邮件发送会忽略错误,不将错误信息返回给 *** 作系统。
jmail.logging = true '使用日志
jmail.charset = "gb2312"
jmail.contentType = "text/html"
jmail.from = smail '设定发件人邮箱
jmail.fromname = fromname '指定发件人
jmail.mailserverusername = smail '设定发件人邮箱帐号
jmail.mailserverpassword = smail_pwd '设定发件人邮箱密码
jmail.addRecipient tomail '设定收件人邮箱帐号
jmail.subject = subject '设定邮件的标题
jmail.body = body '设定邮件的内容
jmail.returnreceipt=true '当对方收到邮件后发回收条
'smtp发信服务器名称如:mail.qq.com、smtp.163.com、smtp.163vip.net、smtp.126.com、smtp.sina.com.cn、smtp.gmail.com、smtp.china.com、smtp.sohu.com
if jmail.send("mail.qq.com")=false then '开始发信并判断发信结果
gw_sendmail=false '发信失败
else
gw_sendmail=true '发信成功
end if
end function
'用户意见/网站留言发送邮件示例
dim name1,mobile,content,body
name1=trim(request.form("name1"))
mobile=trim(request.form("mobile"))
content=trim(request.form("content"))
body=""
body=body & "<p>留言时间:" & now() & "</p>"
body=body & "<p>留言IP:" & request.ServerVariables("REMOTE_ADDR") & "</p>"
body=body & "<p>客户姓名:" & name1 & "</p>"
body=body & "<p>手机号码:" & mobile & "</p>"
body=body & "<p>留言内容:" & content & "</p>"
if gw_sendmail("57404811@qq.com","**网站留言-" & name1,body)=true then '这里填自己的邮箱
call alert("发送成功!","/")
else
call alert("错误:发送失败!","javascript:window.history.back()")
end if
%>
步骤:
一,在MT4系统中设置收件人邮箱。
在MT4菜单栏上点击:工具-选项-电邮。设置如下图:
设置好以后,需要重启动一下MT4,再点击测试,
在日志里出现“Mail:"Test message" hasbeen sent”的成功信息。
二,给MT4加上发送邮件的小程序,确定邮件的内容和发送方式。
举例:
下面是每10分钟定时发送一个E-MAIL行情信息的小程序。
时间间隔可以在调用程序时修改。我一是每隔30分钟可240分钟提醒一次,因为每当这时候我要看一下我的EA做单了没有。
#property indicator_chart_window
extern int 间隔分钟=10
datetime NextTime=0
int start() {
if( TimeLocal()>NextTime) {
SendMail( Symbol()+DoubleToStr(Close[0],Digits),"" )
NextTime=TimeLocal()+间隔分钟*60
}
return(0)
}
把以上代码复制做成一个自定义指标文件就可以(我命名为“即时行情发送”)。
你可以根据自己的需要进行修改。
三,为邮箱开通手机短信提醒功能。
我使用的是中国移动的139邮箱,可以设置收到邮件时即时手机短信提醒。你可以用别的有手机短信提醒功能的邮箱。
设置在邮箱里进行,不复杂,略。
四,使用方法。
双击“即时行情发送”,设置好时间间隔。确定就可以。
sendmail的配置文件需要配置正确,由于sendmail的配置十分复杂。通常它的配置文件是sendmail.cf,位于/etc/mail目录下。由于sendmail.cf的语法深奥难懂,很少有人会直接去修改该文件来对Sendmail服务器进行配置。一般通过m4宏处理程序来生成所需的sendmail.cf文件。创建的过程中还需要一个模板文件,系统默认在/etc/mail目录下有一个sendmail.mc模板文件。
可以根据简单、直观的sendmail.mc模板来生成sendmail.cf文件,而无需直接编辑sendmail.cf文件。可以直接通过修改sendmail.mc模板来达到定制sendmail.cf文件的目的。这里介绍创建sendmail.cf文件的步骤:
(1)备份原有sendmail.cf文件
在终端命令窗口运行以下命令:
cp /etc/mial/sendmail.cf /etc/mail/sendmail.cf.BAK
(2)生成sendmail.cf文件
根据sendmail.mc模板文件产生sendmail.cf配置文件,并导出到/etc/mail/目录下:
m4 /etc/mail/sendmail.mc >/etc/mail/sendmail.cf
(3)重启sendmail服务
[root@ahpeng root] /etc/rc.d/init.d/sendmail restart
很明显在用m4宏编译工具创建sendmail.cf文件比较方便,而且不容易出错,更可以避免某些带有安全漏洞或者过时的宏所造成的破坏。一个sendmail.mc模板的大致内容如下:
divert(-1)dnl
......
include('/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID('setup for Red Hat Linux')dnl
OSTYPE('linux')dnl
......
dnl #
dnl define('SMART_HOST','smtp.your.provider')
dnl #
define('confDEF_USER_ID',''8:12'')dnl
define('confTRUSTED_USER', 'smmsp')dnl
dnl define(′confAUTO_REBUILD′)dnl
......
这里介绍sendmail.mc模板的语法组成:
dnl:用来注释各项,同时dnl命令还用来标识一个命令的结束。
divert(-1):位于mc模板文件的顶部,目的是让m4程序输出时更加精简一些。
OSTYPE ('OperationSystemType'):定义使用的 *** 作系统类型,显然这里应该用linux代替OperationSystemType,注意要用一个反引号和一个正引号把对应的 *** 作系统类型括起来。
define:定义一些全局设置,对于Linux系统,设置了OSTYPE之后,可以定义下面的一些全局参数,如果不定义,就使用默认值。这里举两个简单例子:define('ALIAS_FILE','/etc/aliases')
定义别名文件(alia file)的保存路径,默认是/etc/aliases
define('STATUS_FILE', '/etc/mail/statistics')
sendmail的状态信息文件。
以上只是sendmai.mc的一些简单的语法解释,更多的参数含义及其配置信息可以参见http://www.sendmail.org/m4/tweaking_config.html。
3. 为新用户开电子邮件账号
在Linux里为新用户开设电子邮件账户比较简单,只需在Linux系统里新增一个用户即可。单击"主菜单→系统设置→用户和组群"菜单项,打开"Red Hat用户管理器"对话框,单击"添加用户"按钮,在出现的"创建新用户"对话框里指定用户名、登录口令即可,如图3所示。
假设我们添加了一个用户Peter(密码为peter),这样该用户就有了一个邮件地址Peter@YourDomain.com(此处的YourDomain.com用你自己域名代替)。
以上过程也可以在终端命令窗口运行以下命令来实现:
[root@ahpeng root]#adduser peter -p peter
其实,它是利用磁盘配额功能来实现的。电子邮件的暂存空间是在/var/spool/mail目录下,只要通过磁盘配额设定每一个用户在这个目录下能使用的最大空间即可。
[root@ahpeng root]#/etc/rc.d/init.d/xinetd reload
设置好以后,就可以在Outlook Express里面设置好邮件账号,以后就可以直接利用Sendmail服务器进行收发邮件了,由于邮件服务器就在本地局域网,所以速度很快。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)