星期一, 十月 23, 2006

Tips.Excle 格式化cells value to text 文本

花了半个小时,才发现正确答案是
with cells(1,1)
.Style.NumberFormat = "@"
End with

星期五, 十月 13, 2006

Linux用Sendmail 发送 附件

非常Cool脚本。

#!/bin/sh
From="sunose@g.com"
To="sunose@g.com"
Subject="Sendmmail with attachment use uuencode"
(
echo "Subject: $Subject"
echo "body"
echo ""
uuencode $1 $1
) | /usr/sbin/sendmail -f$From $To
exit 0

Linux下Sendmail 配置成为邮件转发及避免DNS查询

Sendmail 8.x 通过m4 /etc/mail/sendmail.mc来生成传统的sendmail.cf
一般语法转换为 m4 /etc/mail/sendmailmc > /etc/sendmail.cf

1。配置Sendmail作为邮件转发网关。
目的:做为内网,外网之间的Email集中,发散服务器。
可以把所有内网的Email通过一台Email发送到可以访问外网的服务器

配置.
1.1 直接修改sendmail.cf DS属性.
在Sendmail.cf里找到smart relay host DS 在后面加入需要转发到的中心Email网关
服务器的domain name
DSsmtp.microsft.com
1.2 修改sendmail.mc
加入:define(`SMART_HOST',`smtp.microsft.com')
然后用命令m4 编译成sendmail.cf.启动sendmail 就可以使用了。

上面的方法有个缺点,就是 网关服务器必须要有正规的域民,如果没有在发送email的时候,跟踪email
sendmail -v gate@microsft.com 会出现 (Reason 550 Host Unknown)的错误。
如何避免这个问题呢?这个问题就直接引出下面问题。
Sendmail发送Email的时候,如何避免查询DNS?


2. 配置Sendmail 发送Email不要查询DNS.
在sendmail.mc 文件里加入如下语句:
FEATURE(`nodns')dnl
然后通过 m4生成 sendmail.cf文件,并在提示下,建立/etc/mail/service.switch文件
文件内容包括如下:
hosts files
aliases files

注释:
hosts files 让sendmail的dns查询只查询/etc/hosts文件。
你可以在hosts文件里加入 ip 服务器名.
aliases files 让sendmail 查询/etc/mail/aliases

启动 sendmail /etc/init.d/sendmail restart 之后。
再用 sendmail -v xxx@microsft.com
就可以看到发送成功的消息了。如下

220 yourseve.name ESMTP Service ready at Fri, 13 Oct 2006 13:21:34 +0800
>>> EHLO localhost.localdomain
250-Email.Gateway Hello localhost.localdomain ([10.2.5.240]), pleased to meet you
250-HELP
250-SIZE 10240000
250 PIPELINING
>>> MAIL From: SIZE=5
250 root@localhost.localdomain... Sender OK
>>> RCPT To:
250 gate@microsft.com... Recipient OK
>>> DATA
354 Enter message, end with "." on a line by itself
>>> .
250 Message accepted for delivery
gate@microsft.com... Sent (Message accepted for delivery)
Closing connection to Email.gatway
>>> QUIT

星期二, 十月 10, 2006

Tips:Vba合并Excel的单元格

Range("A1:B4").Select
With Selection
.MergeCells = True
End With
任意多个对象都有.MergeCells的属性。

比如想把第一行合并。
With Rows(1)
.MergeCells = True
End With