1 前提:已安装svn,假设已有版本库名称为 :share
2 安装perl并重新启动。
    下载并安装  ActivePerl-5.14.2.1402-MSWin32-x86-295342.msi     下载地址  http://www.perl.org/get.html
    默认安装路径为:C:\Perl
3 分别安装Authen-sasl和MIME::Lite模块
   打开cmd 进入C:\Perl
   c:\Perl>ppm install mime::lite
   c:\Perl>ppm install authen-sasl
   如果以上模块没有安装成功会报错误信息“503badsequenceofcommands”和“SMTP Error: Need MIME::Base64 and Authen::SASL todo auth”。

4 创建post-commit.bat 脚本
   以版本库“share”为例子:进入版本库所在目录 ..\share\hooks\
   新建post-commit.bat,或者复制“post-commit.tmpl” 为“post-commit.bat”
   在svn commit 后调用post-commit.bat时,会传给此脚本两个参数,“repos” 和“rev”  依次代表发生修改的版本库路径和提交后的版本号。
   post-commit.bat只起到将这两个参数和其他发送邮件发送配置传递给 commit-email.pl的作用。 所以下面一句就够了,详细内容参见“post-commit.tmpl”
==============post-commit.bat内容==================

C:\Perl\bin\perl.exe ..\commit-email.pl %1 %2 receiver@***.com --from send@***.com -l ..\log.txt -s " 邮件标题"

===============================================
内容含义:

    C:\Perl\bin\perl.exe  为perl安装路径
    ..\commit-email.pl  为commit-email.pl脚本路径,如果后面找不到路径就填写绝对路径。
    1% :“repos”
     2%:“rev”
     receiver@***   :收件人地址
     --from send@***.com   发件人地址,--from必须的
     -l ..\log.txt      log文件地址   可选的的
     -s " 邮件标题"    设置默认邮件主题

5 编辑 commit-email.pl脚本
下载commit-email.pl 脚本  http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/commit-email.pl.in
  commit-email.pl脚本存放路径请与上面的路径一致。
修改内容:
    5.1  找到my ($sendmail, $smtp_server修改为:my ($sendmail, $smtp_server, $username, $passwd);
    5.2  可以注释掉sendmail,并修改或增加以下变量为真实信息。
         #$sendmail = "/usr/sbin/sendmail";
         $smtp_server = "×××××××";  邮件服务器的 域名或ip
         $username = "×××××";   发送邮箱帐号
         $passwd = "×××××";     发送邮箱密码
 
         my $svnlook = "..\\Subversion Server\\svnlook.exe"; svnlook的路径
   5.3  将下面两个变量改1
         my $no_diff_deleted = 1;
         my $no_diff_added = 1;
   5.4   在
          my $smtp = Net::SMTP->new($smtp_server)
             or die "$0: error opening SMTP session to `$smtp_server': $!\n";
          后面增加:
          handle_smtp_error($smtp, $smtp->auth("$username","$passwd"));

通过以上设置邮件就可以正常发送了。可以通过修改版本库内容来触发或者直接commit-email.pl 参数来运行脚本。

6 支持中文显示
修改commit-email.pl只需要将UTF-8改为GB2312即可。    
#push(@head, "Content-Type: text/plain; charset=UTF-8\n");
push(@head, "Content-Type: text/plain; charset=GB2312\n");

因为中文显示,在网络找了很久,改字符集,在程序中做转换,都不行,就直接在客户端改了下编码就没问题了。
标题的中文显示,只要改下上面那行就行了。

svn自动邮件提醒(win7下支持中文显示,使用commit-emial.pl)相关推荐

  1. 【爬虫】力扣每日一题每天自动邮件提醒!!!

    使用python实现了一个力扣每日一题每天自动邮件提醒的小爬虫,小但实用!!! 文章目录 A.需求来源与分析 B.技术角度分析 C.具体分析步骤 1.接口协议分析 2.发邮件 3.写crontab放服 ...

  2. c语言添加输入函数吗,C语言scanf()函数下支持中文输入吗?

    C语言scanf()函数下支持中文输入吗? C语言scanf()函数下支持中文输入吗? 如果我编写一个程序,要求是先输入姓,再输入名,然后按照常姓名的方式排列出来,如果我需要输入中文该怎么办? 搜索更 ...

  3. 让英文版的LINUX 支持中文显示

    (以REDHAT为例) 1.首先查看系统中有没有安装中文支持软件包   rpm -qa |grep fonts-chinese 如果命令执行后能够查询到相应的包,那么说明已经安装过包:反之则没有安装 ...

  4. [django]Django站点admin支持中文显示和输入设置

    正文: Django站点admin支持中文输入设置,操作如下: 1 需要确定的你的数据库的client客户端和服务端的编码设置为utf-8,如果不是,请将其设置成utf-8编码,我采用mysql,详情 ...

  5. Xna支持中文显示方法归纳

    Xna不同于DirectX,因其内部并未提供类似于D3DFont的机制(据说之所以会这样做,也是考虑到与Xbox360兼容的缘故),使得显示中文变得极为不便. 虽然如此,要实现Xna下的中文显示依然存 ...

  6. 让黑莓模拟器支持中文显示

    黑莓模拟器不支持中文显示和输入,调试中文程序的时候出现方块,解决方法如下: [首先找到模拟器安装目录] 情况一:如果使用的是bb jde for eclipse plugins的话,找到eclipse ...

  7. 一百零二、Hive——hive设置元数据支持中文显示

    在hive中建外部表时遇见到这样一个问题,就是表字段的中文注释在desc 表结构时看不了,发现原来是Hive的元数据库没有设置支持中文显示 第一步,在元数据库metastore完成初始化后,再次登录M ...

  8. Win7下PDF图标显示异常排除

    Win7下PDF图标显示异常排除 文件图标显示异常的原因及检查排除步骤 文件关联异常 图标缓存异常 图标文件损坏 文件图标显示异常的原因及检查排除步骤 文件关联异常 Control Panel\All ...

  9. QT嵌入式QT支持中文显示(zynq)

    @QT嵌入式QT支持中文显示 开发板可以使用文泉驿字体.在如下链接下载wqy-zenhei-0.8.38-1.tar.gz https://sourceforge.net/projects/wqy/f ...

最新文章

  1. AI量身定制:如何打造符合“中国特色教育”的内容推荐体系?
  2. C++逆流而上,Java 惨不忍睹 | 9月编程语言排行
  3. matlab 图论工具箱
  4. 微服务化小团队集群的组织和管理
  5. STM32使用非8M晶振时如何修改代码
  6. FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.解决办法
  7. 数博会重磅活动:第一届大数据科学与工程国际会议日程
  8. 服务器LCD显示面板,DELL服务器2950的错误代码表(前LCD面板)
  9. 据说,上海AI产业规模700亿,包揽全国1/3人才
  10. sumk 2.0.0 发布,轻量级互联网框架
  11. 百面机器学习—模型复杂度与模型的方差、偏差的关系
  12. 一张小图看尽 Nginx
  13. Android实现连点按钮三下退出程序
  14. 吉他入门教程之吉他音阶训练——练习方法
  15. 解决打开VMware虚拟机时Take Ownership出错的问题
  16. 让tp6显示错误信息及行号
  17. webstrom免安装版
  18. 汇编语言的寻址方式(针对16位寻址)
  19. 批量去除图片的黑色背景,并且统一修改图片尺寸
  20. lua生成指定大小的随机字符串

热门文章

  1. catia 装配模块无法使用,插入零件后看不见任何零件,点击特征树中的+号,+号便消失,零件可以单独打开
  2. 用户运营时代背景下,做好精细化运营能带来什么?
  3. JMX远程监视Java进程
  4. Android 4.x原生软件详细列表
  5. 自动控制系统之系统信号流图
  6. 生鲜电商能在预制菜中找到盈利答案吗?
  7. vue+openlayer实现地图聚合效果和撒点效果
  8. 教大家如何搭建一个系统可视化清除垃圾工具,(代码很简化,小白也能看得懂)大牛勿喷
  9. 轻松玩转WINXP的日语输入法
  10. SAP ME01 创建货源清单