Google

星期一, 三月 30, 2009

如何使用Python发送带附件的邮件

1、首先要理解一个常识(RFC)
RFC(The Request for Comments)是一个关于Internet各种标准的文档,定义了很多的网络协议和数据格式,标准的Internet邮件遵从RFC2822(Internet Message Format)等几个文档,其中RFC822中描述了邮件头(mail headers)的格式。具体文档在Python帮助里都可以查到全文。
2、其次要熟悉Python的几个模块
关于邮件的有email,smtplib等,关于编码的有base64,binascii等,发送邮件的方式就是先根据RFC构造好邮件的各个部分,然后登录到smtp服务器sendmail就可以了。
3、下面贴代码
1# -*- coding: cp936 -*-
2
3from email.Header import Header
4from email.MIMEText import MIMEText
5from email.MIMEMultipart import MIMEMultipart
6import smtplib, datetime
7
8#创建一个带附件的实例
9msg = MIMEMultipart()
10
11#构造附件
12att = MIMEText(open('d:\\tc201.rar', 'rb').read(), 'base64', 'gb2312')
13att["Content-Type"] = 'application/octet-stream'
14att["Content-Disposition"] = 'attachment; filename="tc201.rar"'
15msg.attach(att)
16
17#加邮件头
18msg['to'] = 'zhousl@xxx.com'
19msg['from'] = 'zhousl@xxx.com'
20msg['subject'] = Header('冒烟测试结果 (' + str(datetime.date.today()) + ')', \
21 'gb2312')
22#发送邮件
23server = smtplib.SMTP('smtp.xxx.com')
24server.sendmail(msg['from'], msg['to'], \
25 msg.as_string())
26server.close
4、几个值得注意的地方
1)构造附件时注意采用正确的字符集,这个困惑我好久,开始没有用gb2312,发过去的压缩文件就是坏的;
2)上面的代码中没有包括登录smtp服务器的指令,而Internet上面的smtp服务器一般都是要求认证的,可以通过smtp.login方法进行登陆
3)sendmail方法中的参数to可以是包含多个地址的元组,这样可以发送邮件给多个人了
4)Python2.4以前的版本是不支持gb2312字符集的,要下载安装Python2.4才能跑上面的代码,当然2.4.1肯定会更好一点

http://www.cnblogs.com/zhousl/archive/2005/12/13/296167.html

标签: ,

Python:使用getopt模块处理命令行参数

可以参考http://docs.python.org/lib/module-getopt.html

# -*- coding: cp936 -*-
import getopt
import sys

def usage():
print '''Help Information:
-h: Show help information
-xValue:
...'''

if __name__=='__main__':
#set default values
x=1
y='y'

try:
print sys.argv[1:]
opts,args=getopt.getopt(sys.argv[1:],'hx:y:d')
#opts 是带-选项的参数
#args 是没有选项的参数
print opts
print args
#h表示使用-h,h选项没有对应的值
#x:表示你要使用-xValue,x选项必须有对应的值.
except getopt.GetoptError:
#打印帮助信息并退出
usage()
sys.exit(2)
#处理命令行参数
for o,a in opts:
if o=='-h':
usage()
sys.exit()
if o=='-x':
try:
x=x+int(a) #注意默认a为字符串
except ValueError:
print 'Invalid Value'
print x
if o=='-d':
print 'use -d'
if o=='-y':
y=y+a

运行结果:
getopt_example.py -x12 -y ss -d sdf s123
['-x12', '-y', 'ss', '-d', 'sdf', 's123']
[('-x', '12'), ('-y', 'ss'), ('-d', '')]
['sdf', 's123']
13
use -d

http://hi.baidu.com/javalang/blog/item/1f72fe034fb9de743812bb7e.html

标签:

星期四, 三月 26, 2009

OpenID 是什么?

OpenID 是一个以用户为中心的数字身份识别框架,它具有开放、分散、自由等特性。

OpenID 的创建基于这样一个概念:我们可以通过 URI (又叫 URL 或网站地址)来认证一个网站的唯一身份,同理,我们也可以通过这种方式来作为用户的身份认证。 由于URI 是整个网络世界的核心,它为基于URI的用户身份认证提供了广泛的、坚实的基础。

OpenID 系统的第一部分是身份验证, 即如何通过 URI 来认证用户身份。 目前的网站都是依靠用户名和密码来登录认证,这就意味着大家在每个网站都需要注册用户名和密码, 即便你使用的是同样的密码。如果使用 OpenID (参见规范), 你的网站地址(URI)就是你的用户名, 而你的密码安全的存储在一个 OpenID 服务网站上 (你可以自己建立一个 OpenID 服务网站,也可以选择一个可信任的 OpenID 服务网站来完成注册)。

登录一个支持 OpenID 的网站非常简单(即便你是第一次访问这个网站也是一样)。 只需要输入你注册好的 OpenID 用户名,然后你登录的网站会跳转到你的 OpenID 服务网站, 在你的 OpenID 服务网站输入密码(或者其它需要填写的信息)验证通过后, 你会回到登录的网站并且已经成功登录。 OpenID 系统可以应用于所有需要身份验证的地方, 既可以应用于单点登录系统,也可以用于共享敏感数据时的身份认证。

除了一处注册,到处通行以外,OpenID 给所有支持 OpenID 的网站带来了价值--共享用户资源。 用户可以清楚的控制哪些信息可以被共享,例如姓名、地址、电话号码等。

今天,OpenID 作为以用户为中心的身份验证系统已经为数百万的用户提供了服务。 在“I Want My OpenID Bounty” 项目的推动下, 许多开源项目都迅速的加入了对 OpenID 的支持。

http://openid.net.cn/
http://openid.net/

标签: , ,

亚马逊计算云之入门手册(翻译)

主题

适合的读者
如何使用这个手册
相关资源
这是亚马逊可伸缩的计算云(Amazon Elastic Compute Cloud)入门手册。这节描述了谁应该阅读这个手册。 这份手册是如何组织的。和Amazon EC2相关的其他资源.

在这份指南中,亚马逊可伸缩的计算云(Amazon Elastic Compute Cloud)常常被叫作:"Amazon EC2" 或简称 "EC2"; 同样,亚马逊简单存储服务(Amazon Simple Storage Service) 被称之为 "Amazon S3"; 所有的版权和法律保护也同样适用。
http://cloudcomputing.chaoskey.com/01/01

标签: ,

解决GHS.google.com被封的办法

GHS.GOOGLE.COM是GOOgle提供的各类服务绑定域名时所用的Cname服务器地址

我们伟大的GFW对他的态度也是时好时坏

导致国内的大部分google产品用户对GHS也是谈虎色变

目前ghs.google.com的状态是被封.

下面我们来解决一下这个问题,从而使我们的GOOGLE服务继续正常使用

看看演示

http://mail.laifuer.net.ru

http://sites.laifuer.net.ru

http://docs.laifuer.net.ru

.........................

其实很简单

作cname记录时,本来填写 GHS.GOOGLE.COM

改为 google.proxy.laifuer.cn

问题就迎刃而解了

等待域名解析生效

看看 是不是好了?

http://www.laifuer.cn/get-useage-of-ghs-google-com/

ghs.google.com被封的四种解决办法

Google的App服务可以用两种地址来访问,一种是在google域内,比如www.google.com/a/chenfangyi.com/的形式,一种是在自定义域内,比如mail.chenfangyi.com的形式,后者只需要在google App设置里设置为自定义的域名,然后设置域名的Cname到ghs.google.com。

但问题来了,这个ghs.google.com在国内被墙了,直接按google默认要求的做是无法使用自定义域名访问App服务的,我找到下面四种方法来绕过这个限制。

第一种方法:把要做映射的域名(比如mail.chenfangyi.com)做A记录到一个没有被墙的ghs.google.com的ip。这个IP可以通过国外代理ping得到,也可以通过google去找,比如66.249.91.121;这个方法的缺点是一旦这个IP被封,则所有已经做的记录都必须更改,还得等所有A记录在全球生效。

第二种方法:把任意一个域名或二级域名(比如chs.chenfangyi.com)做A记录到一个没有被墙的ghs.google.com的IP,然后在需要做映射的域名上,创建CNAME到chs.chenfangyi.com就等同于ghs.google.com。这个方法的优点是当这个IP被封的话,只需修改做A记录的那个域名的IP,比较方便。

第三种方法:这个方法的原理跟第二种是一样的,只是不用自己来做这个ghs映像,而用互联网上其他人已经做好的,我找到了两个比较多人用的:Matrix Chou 的ghs.sinoestate.com和 James Fang 的ghs.leafz.net。 (实际上自己做ghs映像理论上都有被GFW的风险,绑定到国外IP上的域名都有被GFW的可能性,所以非常重要的域名就不要绑定到国外IP),为何要选择比较多的人用的镜像呢?因为比较多人用的话,ghs镜像的域名所有者就会有点服务意识,当IP被封的话,可以及时更改镜像的A记录指向,当然,也可能他并不维护这个IP指向。这种方法最方便,但稳定性、自主性、安全性无法保证。

第四种方法:这种方式不是真正的自定义域名,而仅仅是转发。方法很简单,如果你所在的域名解析服务商有转发服务的话,那直接把mail.chenfangyi.com转发到Google App的登陆地址,不过国内DNS服务商的此类服务越来越少且不稳定了(跟监管有关,比如DNSPod老早就停止了这项服务)。如果有自己的空间或服务器,可以自己做转发。(做A记录到一个IP,然后用自己空间上的程序做转发)。

目前ghs.sinoestate.com指向的IP209.85.171.121可以访问,因为我使用DNSPod的域名解析,改起A记录来很方便,所以使用第一种方法。
http://chenfangyi.com/google-app-ghs-gfw.html

可用IP
http://www.jmj.hk/safe/ghsip.html
有了 ghs 可以干什么呢?它可以使用 Google 的 Blogger 和企业应用套件。 我们都知道,注册 Google 企业应用套件后,Google 提供的 ghs.google.com 并不能使用。 所以我们就需要一个ghs 来代替它。但现在IP多被封了, 我找到几个这样的IP!


列表前的状态说明:● 被墙 ●正常

● 64.233.179.121 hs-in-f121.google.com .

● 66.249.81.121 bx-in-f121.google.com .

● 66.249.91.121 ik-in-f121.google.com .

● 72.14.235.121 tw-in-f121.google.com .

● 72.14.207.121 eh-in-f121.google.com .

● 74.125.43.121

● 74.125.47.121 yw-in-f121.google.com .

● 74.125.93.121 qw-in-f121.google.com .

● 74.125.113.121

● 209.85.171.121 cg-in-f121.google.com .

● 216.239.34.21

● 216.239.36.21

● 216.239.38.21

标签: , , ,

星期二, 三月 24, 2009

SQL Server分页SQL

sql server 2005

WITH OrderedOrders AS
(SELECT *,
ROW_NUMBER() OVER (order by [id])as RowNumber  --id是用来排序的列
FROM table_info ) --table_info是表名
SELECT *
FROM OrderedOrders
WHERE RowNumber between 50 and 60;

http://www.ljnid.cn/?id=145

SELECT TOP 页大小 *
FROM
Users
WHERE
(ID NOT IN (SELECT TOP (页大小*(页数-1)) ID FROM Users ORDER BY ID DESC))
ORDER BY
ID DESC

http://blog.csdn.net/leizhipan/archive/2006/10/01/1313508.aspx
重要参考页:
http://icansoft.blog.51cto.com/268543/54310

标签: ,

星期三, 三月 11, 2009

强力推荐Linux下的五大BT下载工具

在Windows操作系统中,可供我们选择的P2P工具多不胜数。然而对于其他操作系统而言,这一类型的软件可能会相对匮乏。俗话说:多不如精。Linux特别是Ubuntu Linux用户拥有的BT软件如果功能足够强大的话,又何必在乎可选择的范围究竟有多宽呢!

  下面,我们将为大家挑选出Ubuntu Linux操作系统中最常用又最好用的五大BT工具。

  1、qBitTorrent

  qBitTorrent是Ubuntu Linux中最受欢迎的P2P软件之一。出自一名法国大学生之手的qBitTorrent功能强大,界面精美,操作直观。

  qBitTorrent是Linux中最受欢迎的P2P软件之一

  qBittorrent的主要特性包括:

  ◆使用Qt4工具包编写出优美的图形用户界面;

  ◆支持UPnP/NAT-PMP端口转发;

  ◆支持加密(与Azureus兼容);

  ◆支持多个文件同时下载或上传;

  ◆集成搜索引擎;

  ◆支持DHT网络;

  ◆支持μTorrent对等交换(PeX);

  ◆支持多达25种语言。

  2、kTorrent

  kTorrent拥有一张漂亮的脸蛋

  KTorrent是使用C++语言为KDE编写的BT客户端程序,其主要功能包括:

  ◆支持UDP追踪;

  ◆IP地址黑名单插件;

  ◆UPnP端口转发(通用即插即用);

  ◆协议加密;

  ◆支持μTorrent对等交换;

  ◆文件优先级别设置;

  ◆导入已部分下载的文件;

  ◆目录扫描,自动监视新的种子文件目录;

  ◆支持RSS。

 3、rTorrent

  rtorrent是利用libtorrent库创建的Ncurses客户端程序。使用C++语言编写的rtorrent除了能够提供基于GUI界面的客户端所具备的功能之外,其速度和效率更为用户所推崇。

  rtorrent的速度和效率更为用户所推崇

  rtorrent的主要功能包括:

  ◆查看下载、开始下载、停止已激活的下载或删除已经停止的下载等;

  ◆调用命令或更改设置;

  ◆更改下载的优先级;

  ◆通过URL或文件路径添加种子,使用标签查看目录内容并自动完成;

  ◆查看日志;

  ◆按空格键退出。

  4、Azureus

  很多Windows用户都知道,以快速高效著称的Azureus是一个基于JAVA的BT客户端软件。其实,Azureus还是一个跨平台的BT下载工具,在Linux操作系统上的应用同样受到了开源社区的青睐。

  Azureus在Windows世界里也颇有名气

  5、Deluge

  Deluge和Azureus一样,不仅仅适用于Linux平台,也适用于其他主流操作系统。

  Deluge也是一个跨平台的BT下载软件

  Deluge的功能同样十分强大,包括:

  ◆Web用户界面;

  ◆BitTorrent协议加密;

  ◆Mainline DHT;

  ◆本地对等发现;

  ◆FAST协议扩展;

  ◆μTorrent对等交换;

  ◆UPn与NAT-PMP

  ◆支持代理服务器;

  ◆全局或单种子速度限制;

  ◆密码保护;

  ◆RSS。
http://linux.chinaunix.net/news/2009/03/11/1064924.shtml

标签: , , ,

星期四, 三月 05, 2009

E61 收Gmail邮件的完美解决方案!

E61 收Gmail邮件的完美解决方案!
在网上看了很多贴,大家似乎不借用第三方软件收GMAIL收邮件都无法成功,潜水很久了,现在终于要把自己的方法说出来。
要用E61收GMAIL,关键在收发邮件的设置。 我截了四张图,前两张是接收端的设置,后两张是发送端的设置。
这一部分,请配合第一、二张图使用
邮件接收服务器: pop.googlemail.com
使用的接入点: 总是询问 (这样便可以自由选择究竟使用WAP还是WIFI)

信箱名称:自己随便取吧.
信箱类型: POP3
安全(端口): SSL/TLS
端口: 默认(995)
APOP 安全登陆: 关闭


这一部分,请配合第三、四张图使用
邮件发送服务器: smtp.googlemail.com
使用的接入点:总是询问 (这样便可以自由选择究竟使用WAP还是WIFI)

安全(端口) StartTLS
端口: 默认(25)

值得提醒大家的是,邮件接受/发送服务器的后缀都是googlemail.com, 而不是gmail.com.
如果这样,你还无法设置成功,请给我发站内信,约个时间通过远程方式手把手教你。

http://www.opda.com.cn/redirect.php?tid=117203&goto=lastpost

标签: , ,

星期三, 三月 04, 2009

Hotmail邮箱 POP3 功能已经向美国, 巴西等 11 国用户开放

在介绍 iPhone & iPod Touch 设置 Windows Live Hotmail 的 POP3 功能的时候,我提到微软已经在 9 国开放了 POP3 功能,而现在又新增两国:美国和巴西。目前已经完全开放 Hotmail POP3 的市场有 11 个:英国,加拿大,澳大利亚,法国,日本,西班牙,德国,意大利,荷兰,以及美国和巴西。

再附上详细的配置信息:


POP 服务器: pop3.live.com (端口 995)
需要 POP SSL?: 是的
用户名: Windows Live ID, 比如:livesino@hotmail.com
密码: 对应 Windows Live ID 的密码
SMTP 服务器: smtp.live.com (端口 25)
需要身份验证?: 是的
需要 TLS/SSL?: 是的

http://www.5dmail.net/html/2009-2-17/2009217114304.htm

标签:

星期二, 三月 03, 2009

实战集体智慧

〈集体智慧编程〉(即 Programming Collective Intelligence: Building Smart Web 2.0
Applications
)还没读完,Collective
Intelligence in
Action又来了。事实上,这本书目前在日本的书泉等书店也是作为计算机版块主推书而出现,书名翻译为<集合知プログラミング>。
Collective Intelligence in Action的前言介绍为

There's a great deal of wisdom in a crowd, but how do you listen to a
thousand people talking at once? Identifying the wants, needs, and knowledge
of internet users can be like listening to a mob.

In the Web 2.0 era, leveraging the collective power of user contributions,
interactions, and feedback is the key to market dominance. A new category of
powerful programming techniques lets you discover the patterns,
inter-relationships, and individual profiles—the collective
intelligence—locked in the data people leave behind as they surf websites,
post blogs, and interact with other users.

*Collective Intelligence in Action* is a hands-on guidebook for implementing
collective-intelligence concepts using Java. It is the first Java-based book
to emphasize the underlying algorithms and technical implementation of vital
data gathering and mining techniques like analyzing trends, discovering
relationships, and making predictions. It provides a pragmatic approach to
personalization by combining content-based analysis with collaborative
approaches.

This book is for Java developers implementing collective intelligence in
real, high-use applications. Following a running example in which you
harvest and use information from blogs, you learn to develop software that
you can embed in your own applications. The code examples are immediately
reusable and give the Java developer a working collective intelligence
toolkit.

https://groups.google.com/group/pongba/browse_thread/thread/f0d6aaa5e3eb19da?pli=1

标签:

国产主流网络硬盘对比

网络硬盘可以说是网虫一种必要工具。可惜的是在国内优秀的网盘很少,能长久运作下去的网盘就更少。国外的网盘一来速度很慢、二来总会让人担心不知哪一天撞墙。在这里归纳了一下目前国内做得比较好的几个网盘网站,并从多个方面对比他们的优缺点。
http://www.cnbeta.com/articles/69041.htm

目前个人正在使用的是:
brsbox
uushare
Skydrive

标签:

辽ICP备05003652号
流风洄雪听天籁,轻云蔽日看落花

Powered by Blogger