LonelyWord

not LonelyWorld bacause of YOU

Skip to: Content | Sidebar | Footer

VB.net发送带图片格式的Email

2012年四月22日 (04:53) | 杂七杂八 | By: LonelyWord

最近要用vb.net写一个发邮件的小程序,倒是不难,但有几个问题解决起来比较棘手

首先,发普通邮件带SMTP认证(Email with SMTP Authentication)很简单,代码如下
Dim smtp As New System.Net.Mail.SmtpClient(“IP Address”)
Dim mail As New System.Net.Mail.MailMessage()
smtp.Credentials = New System.Net.NetworkCredential(“test@example.com”, “Password”)
mail.Subject = Subject
mail.IsBodyHtml = True
mail.From = New System.Net.Mail.MailAddress(“email@example.com”, “LonelyWord”)
mail.Priority = System.Net.Mail.MailPriority.Normal
mail.body = RichTextBox1.Text
mail.To.Add(“to somebody”)
mail.CC.Add(“cc somebody”)
Try
smtp.Send(mail)
MsgBox(“邮件发送成功”)
Catch ex As Exception
MsgBox(“邮件发送失败”)
End Try
代码都比较好理解了,就算加个附件也很简单,mail.Attachments.Add(“file”)。

更深一步,如果Email是带图片的,如何收到邮件能让图片自动显示出来,同时对于不支持HTML的客户端显示txt文件(Embed image in email body)?代码如下
Dim html, plaintext As System.Net.Mail.AlternateView
msg = RichTextBox1.Text & “<img alt=”"Company_Logo”" src=”"cid:ImageID”" border=0>”
html = System.Net.Mail.AlternateView.CreateAlternateViewFromString(msg, Nothing, “text/html”)
Dim imageView As New System.Net.Mail.AlternateView(“image.jpg”, Net.Mime.MediaTypeNames.Image.Jpeg)
imageview.ContentId = “ImageID”
imageview.TransferEncoding = Net.Mime.TransferEncoding.Base64
plaintext = System.Net.Mail.AlternateView.CreateAlternateViewFromString(RichTextBox1.Text, Nothing, “text/plain”)
mail.AlternateViews.Add(html)
mail.AlternateViews.Add(plaintext)
mail.AlternateViews.Add(imageview)
这时还有个问题出来了,RichTextBox如果有很多行文件,msg只是把文本提取出来,换行符并未提取,就是说看到的邮件是一行到头,解决方案是将文本的换行符替换成HTML中的换行符<br />,代码msg = msg.Replace(Convert.ToChar(10), “<br />”)

这时候就可以应付大部分网页、客户端等,email显示出来文本底下有张图片,但如果使用outlook的话,邮件的图片部分会显示红叉(display red cross in outlook 2003/2007/2010),几乎所有版本outlook都显示红叉,这个查了半天,有的说是改安全级别,有的说改注册表,都试过了还是不行,这时候我突然想到,imageview一定是AlternateViews嘛?为什么不能是附件,这时候涉及到iamgeview的代码改成
Dim imageview As System.Net.Mail.Attachment = New System.Net.Mail.Attachment(“image.jpg”)
imageview.ContentId = “ImageID”
imageview.TransferEncoding = Net.Mime.TransferEncoding.Base64
outlook收到的邮件可以正常看到图片了。

屏蔽中国视频网站广告的办法

2011年七月16日 (01:03) | 杂七杂八 | By: LonelyWord

修改hosts文件,加入

#优酷
127.0.0.1 stat.youku.com
127.0.0.1 static.lstat.youku.com
127.0.0.1 valb.atm.youku.com
127.0.0.1 valc.atm.youku.com
127.0.0.1 valf.atm.youku.com
127.0.0.1 valo.atm.youku.com
127.0.0.1 valp.atm.youku.com
127.0.0.1 vid.atm.youku.com
127.0.0.1 walp.atm.youku.com

#去奇艺广告
127.0.0.1 afp.qiyi.com
127.0.0.1 focusbaiduafp.allyes.com
#新浪视频
127.0.0.1 dcads.sina.com.cn
#pptv
127.0.0.1 pp2.pptv.com
#乐视
127.0.0.1 pro.letv.com
#搜狐高清
127.0.0.1 images.sohu.com
#CNTV
127.0.0.1 a.cctv.com
127.0.0.1 a.cntv.cn
127.0.0.1 ad.cctv.com
127.0.0.1 d.cntv.cn
127.0.0.1 adguanggao.eee114.com
127.0.0.1 cctv.adsunion.com
#我乐网
127.0.0.1 acs.56.com
127.0.0.1 acs.agent.56.com
127.0.0.1 acs.agent.v-56.com
127.0.0.1 bill.agent.56.com
127.0.0.1 bill.agent.v-56.com
127.0.0.1 stat.56.com
127.0.0.1 stat2.corp.56.com
127.0.0.1 union.56.com
127.0.0.1 uvimage.56.com
127.0.0.1 v16.56.com
#6间房
127.0.0.1 pole.6rooms.com
127.0.0.1 shrek.6.cn
127.0.0.1 simba.6.cn
127.0.0.1 union.6.cn
#土豆网
127.0.0.1 adextensioncontrol.tudou.com
127.0.0.1 iwstat.tudou.com
127.0.0.1 nstat.tudou.com
127.0.0.1 stats.tudou.com
127.0.0.1 *.p2v.tudou.com*
127.0.0.1 at-img1.tdimg.com
127.0.0.1 at-img2.tdimg.com
127.0.0.1 at-img3.tdimg.com
127.0.0.1 adplay.tudou.com
127.0.0.1 adcontrol.tudou.com
127.0.0.1 stat.tudou.com
#酷6网
127.0.0.1 1.allyes.com.cn
127.0.0.1 analytics.ku6.com
127.0.0.1 gug.ku6cdn.com
127.0.0.1 ku6.allyes.com
127.0.0.1 ku6afp.allyes.com
127.0.0.1 pq.stat.ku6.com
127.0.0.1 st.vq.ku6.cn
127.0.0.1 stat0.888.ku6.com
127.0.0.1 stat1.888.ku6.com
127.0.0.1 stat2.888.ku6.com
127.0.0.1 stat3.888.ku6.com
127.0.0.1 static.ku6.com
127.0.0.1 v0.stat.ku6.com
127.0.0.1 v1.stat.ku6.com
127.0.0.1 v2.stat.ku6.com
127.0.0.1 v3.stat.ku6.com
#激动网
127.0.0.1 86file.megajoy.com
127.0.0.1 86get.joy.cn
127.0.0.1 86log.joy.cn
#天线视频
127.0.0.1 casting.openv.com
127.0.0.1 m.openv.tv
127.0.0.1 uniclick.openv.com
#迅雷看看屏蔽:
127.0.0.1 mcfg.sandai.net
127.0.0.1 biz5.sandai.net
127.0.0.1 server1.adpolestar.net
127.0.0.1 advstat.xunlei.com
127.0.0.1 mpv.sandai.net

新加坡环球影城

2011年四月23日 (10:27) | 狮城生活 | By: LonelyWord

新加坡环球影城(Singapore Universal Studio)在圣淘沙岛上,2010年开放,可以在Vivo city3楼做轻轨过去,一站,或者在Vivo city门口坐公交,门票75新币,一天的门票价格是72新币,年票318新币,现在共有7个主题区,分别是好莱坞、纽约、科幻城市、古埃及、失落的世界、遥远王国及马达加斯加,门口的地方有地图拿,基本上就是一个圈,考虑到每个地方都要排队的话,一天差不多能转下来了,此外还要注意各个表演的时间,尽量把时间分配好

门口就是universal studio的标志

From Singapore

失落的世界

From Singapore

马达加斯加的动物出来游行

From Singapore

城堡

From Singapore

好莱坞

From Singapore

古埃及

From Singapore

服务器备份工具–Bacula安装与配置(四)

2011年四月21日 (13:40) | 网络工程 | By: LonelyWord

如果要看bacula备份状态的话,每次进linux然后运行bconsole查看status比较麻烦,可以考虑用Bacula-web这个插件,可以通过web查看bacula运行状况,十分方便,这个需要以下程序支持,安装即可

yum install php-pear php-gd php-mysql

官网下载,也可以从我的网站下载

下载后解压,然后把文件都拷贝到/var/www/目录下,运行cp -R ./bacula-web /var/www/

修改/var/www/bacula-web/configs/下的bacula.conf文件,使这个web应用可以读取bacula的数据库,在[.DATABASE]下面修改以下这些地方就行了,
# Your database host or IP
host = localhost
# Your database login
login = root
# Your database password.
# For empty passwords use this:
# pass =
pass = 123
# Your database name
db_name = bacula
# Your database type: mysql,sqlite,pgsql
db_type = mysql

修改/etc/httpd/conf/httpd.conf文件,加入

Alias /bacula-web/ “/var/www/bacula-web/”
<Directory “/var/www/bacula-web”>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

改完后需要重新启动httpd服务让改动生效,service httpd restart

这是可以去浏览器,输入http://bacula服务器ip/bacula-web/test.php看看检测的三项(gettext,Pear(DB),GD)是不是都OK,如果前面都没问题的话,这边应该是三个OK,然后可以去看index.php了,如果显示的是空白页面,可能要看一下log文件是不是SELinux阻止文件访问,错误日志差不多是这样的SELinux is preventing the httpd from using potentially mislabeled files

修改/etc/selinux/config文件中的SELINUX=enforcing为SELINUX=disabled,需要重启机器生效
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing – SELinux security policy is enforced.
#       permissive – SELinux prints warnings instead of enforcing.
#       disabled – SELinux is fully disabled.
SELINUX=disabled

这样就可以通过web界面查看bacula备份的结果了

如果还是空白页面的话,去/var/log/httpd/error_log看看是不是因为权限的问题,如果看到类似错误的话

[Mon Apr 25 22:39:59 2011] [error] [client 182.23.147.2] PHP Fatal error:  Smarty error: unable to write to $compile_dir ‘/var/www/bacula-web/templates_c’. B
e sure $compile_dir is writable by the web server user. in /var/www/bacula-web/external_packages/smarty/Smarty.class.php on line 1088

用chown -R apache:apache /var/www/bacula-web/ 命令即可

服务器备份工具–Bacula安装与配置(三)

2011年四月16日 (16:10) | 网络工程 | By: LonelyWord

在要备份服务器的客户端,只有一个文件要配置,bacula-fd.conf,里面修改以下两个参数即可
Director {
Name = Bacula-dir
Password = “test”
}

Director {
Name = Bacula-mon
Password = “testoo”
Monitor = yes
}
修改名称和密码跟服务器上的一样,另外注意的是要打开9102端口,否则无法正常运行

启动服务用/etc/bacula/bacula start

在服务器端运行/etc/bacula/bconsole可以查看配置的成不成功

首先可以看status,出来四个选项
Status available for:
1: Director
2: Storage
3: Client
4: All
Select daemon type for status (1-4):

选4,都查一遍,如果都可以连接上,没有超时什么的错误,就可以用了,如果想手工备份的话,运行run,选取要备份的客户端

要看每个job都备份了什么文件,可以用list files jobid=编号

如以下显示
*list files jobid=139
+——————————————————————————————+
| Filename |
+——————————————————————————————+
| /usr/local/apache2/htdocs/cacti/rra/73/207.rrd |
| /usr/local/apache2/htdocs/cacti/rra/45/149.rrd |
| /usr/local/apache2/htdocs/cacti/rra/116/463.rrd |
| /usr/local/apache2/htdocs/cacti/rra/89/257.rrd |
| /usr/local/apache2/htdocs/cacti/rra/37/141.rrd |
| /usr/local/apache2/htdocs/cacti/rra/103/341.rrd |
| /usr/local/apache2/htdocs/cacti/rra/103/344.rrd |
(以下省略)

要回复文件的话用restore即可,然后选择对应的选项,jobid可以从status命令中选客户端看到

服务器备份工具–Bacula安装与配置(二)

2011年四月15日 (08:27) | 网络工程 | By: LonelyWord

Bacula的备份和恢复工作由下面几个部分完成
(1)Director Daemon主要是控制端,控制存储,要备份的服务器,运行依赖于数据库,推荐使用MySQL
(2)Storage Daemon主要是文件存储,所有的备份都会存储在这里,恢复的时候从这里取文件
(3)File Daemon就是在客户端运行的进程,备份的时候传出文件,恢复的时候接收文件
(4)Console是连接Director进行控制的
(5)Monitor是监控备份过程的,完成或失败会有log和发送email的,失败的log很详细

一般来说,Director,Storage和Console都会放在一个服务器,除非有特别需要,例如Storage需要放在磁带DVD什么的

这些配置文件都在/etc/bacula/目录下,重要的是bacula-dir.conf,是整个bacula的核心,

Director {                            # define myself
Name = Bacula-dir
DIRport = 9101                # where we listen for UA connections
QueryFile = “/etc/bacula/query.sql”
WorkingDirectory = “/var/bacula/working”
PidDirectory = “/var/run”
Maximum Concurrent Jobs = 1
Password = “WeoJoDjWpYUTPGSghEZUY/7dIYscb7CHuzcbevWaHcU9″         # Console password
Messages = Daemon
}
这一般不用改,password要跟bconsole.conf里面的password一致,如果是一台服务器,默认就是一样的

然后跟着是JobDefs,主要是定义要备份的客户端
JobDefs {
Name = “Webhost”
Type = Backup
Level = Incremental
Client = webhost.abc.com
FileSet = “webhost”
Schedule = “WeeklyCycle”
Storage = File
Messages = Standard
Pool = File
Priority = 10
Write Bootstrap = “/var/bacula/working/%c.bsr”
}
这里指定client的名字是webhost.abc.com,要备份的文件在FileSet webhost里指明,备份计划是WeeklyCycle,默认是每个月的第一个周日做全备份,剩下的周日做差异备份,每天做增量备份,没有特殊需要可以不用改

Job {
Name = “Backup Webhost”
JobDefs = “Webhost”
}
这个是Console运行Job的时候需要的

FileSet {
Name = “webhost”
Include {
Options {
signature = MD5
}
File = /home/
File = /root/
}
Exclude {
File = /root/bacula-5.0.3/
}
}
这个就是webhost这个job需要备份的文件,可以通过include指定多个文件目录,也可以通过exclude在指定的那些目录排除一些子目录

Schedule {
Name = “WeeklyCycle”
Run = Full 1st sun at 05:05
Run = Differential 2nd-5th sun at 05:05
Run = Incremental mon-sat at 05:05
}
这个就是定义自动备份的时间段

Client {
Name = webhost.abc.com
Address = webhost.abc.com  #或者用ip,例如1.1.1.1
FDPort = 9102
Catalog = MyCatalog
Password = “test”          # password for FileDaemon
File Retention = 30 days            # 30 days
Job Retention = 6 months            # six months
AutoPrune = yes                     # Prune expired Jobs/Files
}
定义客户端机器,这里面的name和address虽然一样,但意义不同,name可以随便用,只要跟JobDefs里client一样就行了,address就是服务器的ip地址,或者域名,password这个要跟客户端里面设置的一致

Storage {
Name = File
# Do not use “localhost” here
Address = 127.0.0.1                # N.B. Use a fully qualified name here
SDPort = 9103
Password = “l5OTjniMqNs+QM3Z3U2uBIjOb6mKqIoa67X7zYjlRzwp”
Device = FileStorage
Media Type = File
}
存储的位置,这个如果在同一台服务器的话,只要把address中的localhost改成127.0.0.1即可,如果不在同一个服务器,要注意password要设置成一样的

Messages {
Name = Daemon
mailcommand = “/sbin/bsmtp -h mail.abc.com -f \”\(Bacula\) \<%r\>\” -s \”Bacula daemon message\” %r”
mail = test@abc.com = all, !skipped
console = all, !skipped, !saved
append = “/var/bacula/working/log” = all, !skipped
}
发送email消息设置,-h后边要改成email服务器,也可以用本机当email服务器,mail改成收件人地址

Console {
Name = Bacula-mon
Password = “testoo”
CommandACL = status, .status
}
监控用的,这边的password也要跟客户端里面的一样

服务器备份工具–Bacula安装与配置(一)

2011年四月14日 (08:34) | 网络工程 | By: LonelyWord

Bacula是可以自动备份服务器文件的程序,备份和回复都非常方便,基本上不用人管,出了问题可以选择回复哪个时间点的文件,你可以从官网下载,也可以从我的网站下载,我运行的环境是CentOS5.5,32位的

首先要安装mysql,然后启动mysql服务,并且要创建mysql的root密码,不创建密码也行,就是不安全,这里为了方便我就用123当作密码
yum install mysql
service mysqld start
mysqladmin -u root password “123″

然后用netstat -nat命令看看3306端口起没起来,看到有3306端口正在被listen就成功了

然后解压下载的bacula,运行./configure –with-mysql(服务器端运行需要mysql支持),报错,说configure: error: Unable to find C++ compiler,查了一下要安装一个c++编译器,运行yum install gcc-c++,然后继续运行./configure –with-mysql,还是报错,说configure: error: Unable to find mysql.h in standard locations,这个要安装mysql-devel,运行yum install mysql-devel,这些都是bacula服务器上要安装的,在客户端不用安装,./configure –with-mysql没有报错后继续make;make install

完成之后去/etc/bacula做一些相关数据库的操作
分配权限
./grant_mysql_privileges -u root -p”123″
创建数据库
./create_mysql_database -u root -p”123″
创建表
./make_mysql_tables -u root -p”123″

客户端安装很简单,就一句
./configure –enable-client-only

这些完了之后安装阶段结束,剩下的是要配置

澳门游记

2011年二月22日 (11:11) | 香港澳门 | By: LonelyWord

澳门似乎除了去赌也没啥好干的了,早晨做地铁到罗湖口岸,出口就是深圳火车站和罗湖汽车站,坐车去珠海大概要3-4个小时,车票120左右,到了拱北出关入关都要排长队,旁边有香港人通道,拿着香港身份证一刷就可以过去,如果定了大酒店的话可以做酒店提供的车直接去,没有的话可以做3路车到大马路下,景点,购物,吃饭啥的都在这条街上了,港币和澳币都可以使用,我们到了就晚上了,找个了酒店住下了,旧的葡京赌场

From 香港,澳门

新的葡京赌场,这俩挨着,就隔着一条马路

From 香港,澳门

民政总署,下面的文字是葡萄牙文

From 香港,澳门

对过的一条街是通往大三巴牌坊的,建于1580年,算是澳门最有名的景点了

From 香港,澳门

教堂

From 香港,澳门

澳门小吃不少,相比香港便宜一点点,喜欢购物的转转不错,可看的地方实在不多

香港游记(二)迪斯尼乐园

2011年二月21日 (16:29) | 香港澳门 | By: LonelyWord

第二天的行程自然就是迪斯尼了,坐地铁可以直接到,在欣澳换乘,估计是为迪斯尼乐园专门设计的列车

From 香港,澳门

到了入口,还好没有出现昨天那样的很多小学生排长队进入,看起来人不是很多

From 香港,澳门

门票是300港币一人,还有年票,600多,入口

From 香港,澳门

游乐园的商店,看着很有感觉

From 香港,澳门

商店里的屋子模型

From 香港,澳门

里面的摆设

From 香港,澳门

卖的毛绒米老鼠

From 香港,澳门

火车,很像玩具,可以绕迪斯尼一大圈,不过只有两个车站

From 香港,澳门

城堡,里面可以坐车游览

From 香港,澳门

很可爱的一对

From 香港,澳门

临走时拍的

From 香港,澳门

香港游记(一)

2011年二月18日 (22:33) | 香港澳门 | By: LonelyWord

酒店定在了湾仔附近,机场有A11大巴可以直接到,40港币,特别说一下,香港机场的无线是免费的,甚至公交上都有WiFi热点,手机上网比较方便,从深圳到香港的话,很多口岸都有大巴直接到,住的地方后边是湾仔轮渡码头,对过是尖沙咀,扫货的地方

From 香港,澳门

香港地铁和公交很发达,最好买个八达通卡,也就是公交卡,第二天一早准备去迪斯尼乐园玩的,结果一到,发现国内有个小学生团在门口排队,初步估计有小1000号人,果断决定先去别的地方转,明天在来玩,随后去了中环,香港的中心,中银大厦

From 香港,澳门

沿着大路往上走,是太平山,杜莎夫人蜡像馆就在快到山顶的地方,可以做小火车上去,火车据说有一个世纪的年龄了,山顶是看香港夜景比较好的地方,一般晚上旅行团都会带过来,007

From 香港,澳门

邓丽君

From 香港,澳门

之后往上走了几层,到了山顶,我们是下午到的,人还不多,可以随便拍照

From 香港,澳门

晚上可以去尖沙咀逛逛,看到的基本上是中国女的拎着LV啊Gucci啊什么的带子走来走去的

Page 1 of 2012345...1020...Last »