欢迎来到皮皮网网首页

【友价源码商城源码交易】【卡通农场源码】【源码补码反码区别】envelope源码

来源:通达信主力轨迹源码 时间:2024-12-28 17:39:26

1.fabric-sdk-go的简单使用
2.html制作个人简历代码?
3.linux系统下邮件服务器sendmail的源码配置

envelope源码

fabric-sdk-go的简单使用

        使用fabric提供的cryptogen工具生成文件模板

        $ cryptogen showtemplate > crypto-config.yaml

        进行修改,添加一个组织,一个orderer节点.

        根据crypto-config.yaml文件生成证书文件:

        $ cryptogen generate --config=crypto-config.yaml

        查看生成的证书文件夹结构:

        需要从fabric的源码案例中拷贝configtx.yaml文件

        $ cp $GOPATH/src/github.com/hyperledger/fabric-samples/first-network/configtx.yaml ./

        对configtx.yaml文件进行修改.

        修改之前,创建一个文件夹,来保存即将创建的创世区块文件

        将创建区块文件和通道的命令写到一个脚本中! generate.sh

        脚本文件和配置文件的目录结构:

        执行generate.sh文件生成创世区块文件和通道,其实只有一个组织,也没必要生成锚节点更新文件..

        $ ./generate.sh

        配置docker-compose文件:

        启动容器, 启动后查看容器运行情况

        $ docker-compose up -d

        $ docker-compose ps

        在这里,创建两个脚本文件,用于docker容器的管理

clear_docker.sh文件:

        restart.sh文件:

        创建配置文件的时候,有两个文件可以进行参考...

        修改后的sdk配置文件:

        创建出一个模型对象,给其赋值,并开始初始化sdk

        使用 pkg/fabsdk/fabsdk.go中的New()方法进行实例化

        创建请求之前,需要使用 gopackager.NewCCPackage 方法生成一个resource.CCPackage 对象,传递两个参数,一个是链码的路径(相对于工程的路径), 一个是GOPATH的路径.

        安装链码,使用pkg/client/resmgmt/resmgmt.go文件中的方法

        创建请求之前,需要生成一个*cb.SignaturePolicyEnvelope类型的对象,使用 third_party/github.com/hyperledger/fabric/common/cauthdsl/cauthdsl_builder.go文件中的方法即可,提供了好几个方法, 使用任意一个即可.这里使用 SignedByAnyMember方法: 需要传入所属组织ID

        实例化链码

        使用 pkg/client/channel/chclient.go中的 Execute()方法,来进行数据写入的操作:

        rsp, err := model.Channelclient.Execute(req)

        写入之前,要创建请求:

        tempArgs是要传给链码的参数,可以做下封装,就不受参数个数的限制了

        使用 pkg/client/channel/chclient.go中的 Query()方法,来进行数据查询的操作: 查询之前,同样需要创建请求.

        链码在工程中的路径应该是 工程名/chaincode文件夹

        比如:

        driverFabricDemo/chaincode

        而不应该省略掉工程名这样写: chaincode

        错误原因:cert.URIs 和 tpl.URIs 这两个字段没有被定义.

        进入tpl对象中, /usr/local/go/src/crypto/x/x.go 是个结构体,并没有发现 URIs 字段

        对go版本进行升级,从1.9.3升级到1..3, 再次进入 /usr/local/go/src/crypto/x/x.go 文件中,查看结构体内容:

        在执行sdk的Excute()方法时报错.

        方法不存在,一般是由于链码的Invoke方法中的方法名和Excute()方法传入的方法名不一样.

        但是可以肯定的是,链码的Invoke方法中的方法名和,项目中执行Excute()方法时传入的方法名是完全一样的! 但是很奇怪了,为什么会出现这个错误呢? 使用 docker rmi 删除掉 dev-peerx.travle.xq.com 的镜像,再重新运行即可.

        在创建实例化链码请求的时候

        总是提示

        Cannot use str (type *cb.SignaturePolicyEnvelope) as type *common.SignaturePolicyEnvelope less... (⌘F1) Inspection info: Reports composite literals with incompatible types and values

        明明是相同的类型,却总是报错,应该是IDE的问题.把vendor文件夹删除后,就不会有提示了. 再使用vendor对工程进行init 和 add +external 就好了!!

        出现这个错误,一般都是配置文件哪个地方写错了,需要细心检查

html制作个人简历代码?

       ç½‘页设计个个人简历页面的代码是什么

       ç½‘页设计个个人简历页面毕局的代码是。根据查询相手磨让关资料信息,网页游早设计是根据当天的数据进行累计基数,在同一个ip下,从1开始,做了个个人简历,页面的代码会累计成。

html制作简历代码不是用table的

       ä½ è¯•è¯•è¿™ç§ï¼š

       é¦–先要确雀芦定简历的格式,如果使用HTML写简历,出来基岁手的格式可能就是HTM,HTML后缀的文件,使用WORD做出来的是DOC扩展名。

       ç¡®å®šä½¿ç”¨ç½‘页格式做简历,建议使用软件来做,这样只需要在软件里面做好格式,自动生成代码,填充内容即可,DREAMWEAVER,FRONTPAGE等,也可以使用WORD编写后保存为页面格式。

       ä»£ç ç¼–写比较麻烦,一般来说站点制作的时候,用DIV布局,数据较多的时候搏嫌就会选择使用TABLE布局,对简历来说,可能会用到TABLE来布局,纯代码的TABLE,TR,TD会用到很多,手工编写会很麻烦,格式也不容易控制。

       html制作个人简历网页代码

       ä»¥ä¸‹æ˜¯æˆ‘用html的相关知识制作的个人简历网页,话不多说先看看最终效果:

       å¦‚上所示项目一共分为5个部分,分别对应导航栏的5个内容。其中项目技能用的是echarts里的柱状图,作品展示用的是bootstrap里的轮播图,除此之外就是html的基础内容。下面我们展示一下项目的代码部分:

       !DOCTYPEhtmlhtml

       head

       metacharset="utf-8"

       title我的个人简历/title

       linkrel="stylesheet"href="lib/css/color.css"

       linkrel="stylesheet"href=""

       scriptsrc=""/script

       scriptsrc=""/script

       scriptsrc=""/script

       /head

       body

       divclass="jumbotrontext-center"style="margin-bottom:0"id="grad1"

       imgsrc="lib/pic/1.jpg"width="px"height="px"/

       h3黄智奇/h3

       pstyle="font-size:px;"年升入陕西国防工业职业技术学院,br/学习软件编程,对编程有浓厚的兴趣,

       åœ¨è€å¸ˆçš„指导,br/和自己的课下练习,渐渐对编程有了更深入的了解隐裂蚂。br/在课余时间,

       æˆ‘喜欢唱歌、跑步和打乒乓球。br/喜好结交志同道合的朋友,一起分享学习的生活的经验。br/

       æœ‰è‰¯å¥½çš„团队意识,学习时源唯认真负责。?/p

       /div

       navclass="navbarnavbar-inverse"

       divclass="container-fluid"

       divclass="navbar-header"

       buttontype="button"class="navbar-toggle"data-toggle="collapse"data-target="#myNavbar"

       spanclass="icon-bar"/span

       spanclass="icon-bar"/span

       spanclass="icon-bar"/span

       /button

       !--aclass="navbar-brand"href="#"专业技能/a--

       /div

       divid="relation"

       table?class="tabletable-striped"

       tbody

       tralign="center"

       tdahref="#email"buttontype="button"class="btnbtn-primarybtn-lg"

       spanclass="glyphiconglyphicon-envelope"/span

       /button/a/td

       tdahref="#email"buttontype="button"class="btnbtn-primarybtn-lg"

       spanclass="glyphiconglyphicon-earphone"/span

       /button/a/td

       tdahref=""target="_blank"buttontype="button"class="btnbtn-primarybtn-lg"

       spanclass="glyphiconglyphicon-user"/span

       /button/a/td

       /tr

       /tbody

       /table

       /div

       divclass="collapsenavbar-collapse"id="myNavbar"

       ulclass="navnav-pillsnav-justified"

       liahref="#main"专业技能/a/li

       liahref="#project"项目经验/a/li

       liahref="#myCarousel"作品展示/a/li

       ç¶åŸ‹liahref="#education"教育经历/a/li

       liahref="#relation"联系方式/a/li

       /ul

       /div

       /div

       /nav

       !--为ECharts准备一个具备大小(宽高)的Dom--

       divid="main"style="width:

       %;height:px;left:%;"/div

       scripttype="text/javascript"

       //基于准备好的dom,初始化echarts实例

       varmyChart=echarts.init(document.getElementById('main'));

       //指定图表的配置项和数据

       varoption={

       title:{

       text:'专业技能平均分'

       },

       tooltip:{ },

       legend:{

       data:['分数'],

       },

       xAxis:{

       data:["Java语言","mysql数据库","Javascript语言","web开发","ssm框架","springboot框架"],axisLabel:{

       //inside:true,隐藏x轴内容

       //改变x轴字体颜色

       //?textStyle:{

       //color:'#8B'

       //?}

       },

       },

       yAxis:{ },

       series:[{

       name:'分数',

       type:'bar',

       //改变图表颜色

       color:['#8EE5EE'],

       data:[,,,,,]

       }],

       };

       //使用刚指定的配置项和数据显示图表。

       myChart.setOption(option);

       /script

       ulclass="list-unstyled"align="center"

       liJava基础:br/

       æˆ‘入门时首先学的就是Java基础,然后再到Java高级开发,br/

       åœ¨å­¦ä¹ è¿‡ç¨‹ä¸­è€å¸ˆç»†è‡´çš„教学为我们打下了牢固的java基础。/li

       limysql数据库:br/

       mysql数据库是我们大一第二学期开的课,配合Java高级开发一起学习的科目,br/

       å› ä¸ºè‡ªå·±æœ¬èº«å°±å–œæ¬¢æ•°æ®åº“的一些东西,所有mysql数据库也有良好的基础。/li

       liJavascript语言:br/

       åœ¨å­¦JavaScript之前我有良好的html5和css基础,所学习JavaScript时也是十分顺利的掌握了课本里的内容。/li

       liweb开发:br/

       web开发是我最喜爱的科目之一,servlet的学习给我启发深刻。/li

       lissm框架:br/

       ssm框架相比springboot而言是比较繁琐的,但是在学习和理解起来却比springboot更容易让人掌握。/li

       lispringboot框架:br/

       springboot框架入门起来十分迅速,在基础的使用起来也是十分方便,但查看源码时,没有ssm容易让人理解。/li

       /ul

       divclass="container"align="center"

       divclass="row"

       divclass="col-sm-4"

       h3class="text-info"id="project"项目名称/h3

       ulclass="navnav-pillsnav-stacked"

       liclass="active"ahref="#car"新能源汽车项目/a/li

       liahref="#city"咕泡商城项目/a/li

       liahref="#bug"爬虫项目/a/li

       /ul

       hrclass="hidden-smhidden-mdhidden-lg"

       /div

       divclass="col-sm-8"align="left"

       h3class="text-info"项目内容/h3

       h2id="car"新能源汽车/h2

       h5企业saas工坊/h5

       p新能源汽车项目是我们掌握smm框架知识后第一个实战项目,该项目由工坊老师指导下,前后端都由我们个人独立完成的项目。

       è¯¥é¡¹ç›®ç”¨åˆ°äº†ï¼Œhtml5+css3,mysql数据库,spring,mybatis,springmvc框架,ajax,JavaScript,web,bootstrap,echarts,sweetalert

       ç­‰æŠ€æœ¯ã€‚项目从开始到完成我们用了2个月的时间。该项目的主要是写一个汽车app社交平台,包括用户登录注册,用户上传车辆信息,统计用户车辆,分析故障车辆原因,

       ä»¥åŠå¯¼èˆªã€æœ‹å‹åœˆç­‰åŠŸèƒ½ä¸€ä½“的汽车平台。该项目用户的使用方法如下:p1.新用户进行登录注册。/p

       p2.登录成功后新用户可以进行修改密码、昵称、头像等个人信息。/p

       p3.新用户上传自己车辆信息,并绑定账号。/p

       p4.新用户可以上传自己车辆故障,系统自动查询车辆故障原因以及维修方案。/p

       p5.用户可以添加车友,在车友圈发布求助信息等。/p

       p6.用户还可以进行地图导航,以及查询公交车,出租车,飞机等交通工具的时间和行程。/p

       p通过完成这个项目,让我获得了很大的进步。不论是前端知识还是后端知识,在该项目上

       éƒ½å¾—到了充分的展示。让我也一下子吸收了很多的知识与技能,为后面的项目打下了坚实的基础。/p

       /p

       br

       h2id="city"咕泡商城/h2

       h5企业saas工坊/h5

       p咕泡商城项目是我们学完springboot之后的实战项目,该项目由工坊老师指导下,前后端都由我们个人独立完成的项目。

       è¯¥é¡¹ç›®ç”¨åˆ°äº†ï¼Œhtml5+css3,mysql数据库,springboot框架,maven,web,javascript,jquery,ajax,echarts,bootstrap等技术。

       é¡¹ç›®ä»Žå¼€å§‹åˆ°å®Œæˆæˆ‘们用了天的时间。该项目主要是写一个网上商城电商购物平台,包括用户登录注册,用户绑定信息,上传头像、昵称等个人信息,

       ç”¨æˆ·ä¸»è¦å¯ä»¥åœ¨è¯¥å¹³å°ä¸Šé¢è´­ä¹°å„种商品,每种商品都做好了分类管理,用户点击分类名称或者准确搜索都能显示出自己想要的商品。用户点击商品就可以

       é“¾æŽ¥åˆ°å•†å“è¯¦æƒ…页面,不论是购物还是浏览商品都非常的方便。该项目用户的使用方法:p1.新用户进行登录注册。/p

       p2.登录成功后新用户可以进行修改密码、昵称、头像等个人信息。/p

       p3.用户自由购买和浏览商品信息。/p

       è¯¥é¡¹ç›®è®©æˆ‘们体验了springboot的配置强大之处,没有繁琐的多余配置文件,所有配置都由一个配置文件解决,简化了我们smm框架配置的痛苦。/p

       br

       h2id="bug"爬虫/h2

       h5企业saas工坊/h5

       p爬虫项目是我们最近才做完的项目。该项目与以往项目不同,该项目是由工坊老师指导下,我们首次前后端分离合作的项目。一个团体3个人,分别做前端展示数据,后端爬取数据和数据清洗。

       æˆ‘在这个项目中做的是后端爬取数据。我用到了,"

       meta?ment and edit the following line if your mail needs to be sent out

       dnl through an external mail server:

       dnl define(`SMART_HOST',`smtp.your.provider')

       define(`confDEF_USER_ID',``8:'')dnl

       undefine(`UUCP_RELAY')dnl

       undefine(`BITNET_RELAY')dnl

       dnl define(`confAUTO_REBUILD')dnl

       define(`confTO_CONNECT', `1m')dnl

       define(`confTRY_NULL_MX_LIST',true)dnl

       define(`confDONT_PROBE_INTERFACES',true)dnl

       define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl

       define(`ALIAS_FILE', `/etc/mail/aliases')dnl

       define(`STATUS_FILE', `/etc/mail/statistics')dnl

       define(`UUCP_MAILER_MAX', `')dnl

       define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl

       define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl

       define(`confAUTH_OPTIONS', `A')dnl

       TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl               

       define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5

       LOGIN PLAIN')dnl

       dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')

       dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')

       dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')

       dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')

       dnl define(`confTO_QUEUEWARN', `4h')dnl

       dnl define(`confTO_QUEUERETURN', `5d')dnl

       dnl define(`confQUEUE_LA', `')dnl

       dnl define(`confREFUSE_LA', `')dnl

       define(`confTO_IDENT', `0')dnl

       dnl FEATURE(delay_checks)dnl

       FEATURE(`no_default_msa',`dnl')dnl

       FEATURE(`smrsh',`/usr/sbin/smrsh')dnl

       FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl

       FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl

       FEATURE(redirect)dnl

       FEATURE(always_add_domain)dnl

       FEATURE(use_cw_file)dnl

       FEATURE(use_ct_file)dnl

       dnl The '-t' option will retry delivery if e.g. the user runs over his quota.

       FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl

       FEATURE(`access_db',`hash -T; -o /etc/mail/access.db')dnl

       FEATURE(`blacklist_recipients')dnl

       EXPOSED_USER(`root')dnl

       dnl This changes sendmailto only listen on the loopback device .0.0.1

       dnl and not on any other network devices. Comment this out if you want

       dnl to accept email over the network.

       DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')

       dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires

       dnl       a kernel patch

       dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')

       dnl We strongly recommend to comment this one out if you want to protect

       dnl yourself from spam. However, the laptop and users on computers that do

       dnl not have x7 DNS do need this.

       FEATURE(`accept_unresolvable_domains')dnl

       dnl FEATURE(`relay_based_on_MX')dnl

       MAILER(smtp)dnl

       MAILER(procmail)dnl

       记得要使以下两个条语句有效,他的源码意思是假如access.db访问控制没有配置,则启用以下

       验证方式进行smtp验证。源码

       TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl               

       define(`confAUTH_MECHANISMS',源码 `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5

       LOGIN PLAIN')dnl

sendmail宏定义说明

       divert(n)                为m4定义一个缓冲动作,当n=-1时缓冲被删除,源码n=0时开始一个新缓冲

       OSTYPE定义宏所使用的源码友价源码商城源码交易操作系统,该宏允许m4程式增加同相关操作系统相关的源码

       文档

       Domain定义MTA将使用哪些域来传输邮件

       Feature定义配置文档中使用的一个特定的功能集

       Define定义配置文档中的一个特定的选项值

       MASQUERADE_AS                定义sendmail来应答邮件的其他主机名

       MAILER定义sendmail使用的邮件传输方法

       dnl注释

       完成sendmail.mc文档的编写后就能够用m4程式生成正式的sendmail.cf配置文档。语法如

       下:

       # m4 sendmail.mc ; sendmail.cf

       也能够用源码目录树下的源码cf/cf/Build命令生成。前提是源码您要在该目录下有一个sendmail.mc

       文档。语法如下:

       # ./Build sendmail.cf

       ok,源码接着就能够把sendmail.cf and submit.cf文档安装到/etc/mail目录中的源码,语法如下:

       # ./Build install-cf

       其实也能够自已用cp命令拷贝的源码啦。记得把sendmail.mc文档也拷贝一份到/etc/mail目录,源码

       以便以后修改配置时可重新生成sendmail.cf文档。源码卡通农场源码

       ok,源码接着到/etc/mail目录下配置一些文档。

       # cd /etc/mail

       # echo 'examply.com' ;; local-host-names         接收邮件的主机名

       # echo 'localhost    RELAY'  ;; access                 用来拒绝或允许来自某个域的邮件,本例允许

       本地转发。

       # makemap hash access 生成access.db数据库

       # touch domaintable         用来把旧域名映射互新域名

       # makemap hash domaintable 来覆盖向指定域的路由

       # makemap hash mailertable 用来把用户和域名映射到其他地址

       # makemap hash virtusertable 别名数据库,文本形式。可参照源码目录树下

       sendmail/aliases文档。

       # newaliases                  从文本文档中创建一个新的别名数据库文档。

       # sendmail-v -bi        调试启动。

       /etc/mail/aliases: aliases, longest bytes, bytes total

       假如出现以上提示信息,则启动成功。可用以下命令正式启动:

       # sendmail-bd -qm

       该命令以后台进程方式(-bd)运行,并使其每隔分钟(-qm)轮询一次未发送邮件队

       列,检查是源码补码反码区别否有新邮件。

       服务器启动后,能够用telnet连接服务器。

       # telnet localhost

       Trying .0.0.1...

       Connected to localhost.

       Escape character is '^]'.

        test.tigerhead ESMTP Sendmail8../8..; Tue, Mar :: +

       ehlo test                您输入的命令,按回车结束。

       -test.tigerhead Hello LOCALHOST.localdomain [.0.0.1], pleased to meet you

       -ENHANCEDSTATUSCODES

       -PIPELINING

       -8BITMIME

       -SIZE

       -DSN

       -ETRN

       -AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN

       -DELIVERBY

        HELP

       以-开头的为服务器的响应信息。注意倒数第三行,这就是成功配置smtp验证的显示。

       输入quit离开。

       安装完成后为确保系统安全,还需调整一些目录的权限。可参考sendmail源码目录下

       sendmail/SECURITY文档。

       # chmod /etc/mail/aliases /etc/mail/aliases.{ db,pag,dir}

       # chmod /etc/mail/*.{ db,pag,dir}

       # chmod /etc/mail/statistics /var/log/sendmail.st

       # chmod /var/run/sendmail.pid /etc/mail/sendmail.pid

       -r-xr-sr-x        root   smmsp        ... /PATH/TO/sendmail

       drwxrwx---        smmsp  smmsp        ... /var/spool/clientmqueue

       drwx------        root   wheel        ... /var/spool/mqueue

       -r--r--r--        root   wheel        ... /etc/mail/sendmail.cf

       -r--r--r--        root   wheel        ... /etc/mail/submit.cf

       6、sendmail功能介绍

       aliases 别名数据库配置

       test:        test1,test2,test3        配置test群组别名,test不是gina.dll 源码个实际的用户,只是个别名。发给

       test的信,test1,2,3都可收到。

       test:        test,testbak                在testbak邮箱中备份test的邮件。

       test:        test,test@.com        远程邮件备份,原理同上。

       test:   :include: /etc/mail/userlist        使用用户列表配置群组。

       userlist格式如下:

       test1, /

       test2, /

       test3, /

       test4

       关于系统预设aliases,由于sendmail预设用mailer-daemon and postmaster作为资料传送者,

       或邮件退回的帐号,但系统实际没有这两个帐号,所以要如下配置别名。

       mailer-daemon:  postmaster

       postmaster:     root

       配置完成后不要忘了用newaliases命令生成数据库。

       ~/.forward文档配置

       其实该文档的vim源码编译安装作用和aliases数据库的作差不多啦,都是配置别名,做邮件转发的。因为alises

       只能由管理员控制,个人用户不能修改,所以就能够在个人的目录下建立一个转寄文档。以

       配置个人的邮件转寄列表。文档格式如下:

       test

       test1

       test2

       test3

       and os on

       但由于个人用户安全意识差,假如配置不当会有安全漏洞,不建议使用。

       access访问控制列表配置

       . RELAY

       test.NET        OK

       test.COM REJECT

       test.COM         SORRY,WE DON'T ALLOW SPAMMERS HERE

       test.ORG        DISCARD

       Ok--远程主机能够向您的邮件服务器发送邮件;

       RELAY--允许中转;

       REJECT--不能向您的邮件服务器发邮件和不能中转;

       DISCARD--发来的邮件将被丢弃,同时并不向发送者返回错误信息。

       nnn text-- 发来的邮件将被丢弃,但sendmail将会向发送者返回nnn确定的smtp代码和text

       变量确定的文本描述。

       配置完成后要用makemap hash access.db 命令生成数据库。

       mailq邮件队列查询命令。

       Q-ID邮件id号。

       Size邮件容量。

       Q-Time邮件进入队列(也就是/var/spool/mqueue目录)的时间和不能邮寄的原因。

       Sender/Recipient        发信和收信人的邮箱地址。

       mailstats邮寄状态查询命令,可查询sendmail运行作至今邮件收发总计资料。

       M     :

       msgsfr:发送的邮件数量。

       bytes_from:邮件容量

       megsto:收到邮件的数量。

       bytes_to:同上

       msgsrej:邮件deny的次数。

       msgsdis:邮件discard的次数。

       Mailer :esmtp对外邮件 ,local本地邮件 。

       mail邮件命令

       mail        查看/var/spool/mail/目录下自已邮箱内容。以q退出把看过的邮件保存在

       ~/mbox中。

       mail test@example.com                直接发邮件给人。

       mail -s 'title text' test@example.com 把文档中内容邮寄出去。

       mail -f ~/mbox查看home目录下邮箱内容。

       用mail发附件也是可行,要用到uuencode and uudecode命令进行编码。

       编码:uuencode [file] name          example:uuencode hello hello;hello.uue   default input

       is stdin;default output is stdout.

       解码:uudecode [-o outfile] name    example:uudecode hello.uue 能够用-o选项输出另外一个

       文档名。

       # uuencode ~/.bashrc bashrc | mail -s 'test uuencode'

       test@example.com

       五、其他配置。

       要想更好的使用sendmail,常用到的一些配置:

       1、限制最大邮件。

       vi /etc/sendmail.cf

       # maximum message size

       O MaxMessageSize=    (注:5M)

       2、最大的群发数目。

       vi /etc/sendmail.cf

       # maximum number of recipients per SMTP envelope

       O MaxRecipientsPerMessage=  (注:个)

       3、域名文档----local-host-name

       能够用他来实现虚拟域名或多域名支持。

       /etc/mail/local-host-name

       v1mail.com

       v2mail.com

       .......

       4、mail别名文档--aliases。

       vi /etc/aliases

       系统内部别名:peng:zpeng,hero,mmmn,yt   peng是我的用户名,其他的是别名,用逗号隔开。

       转发到其他的邮箱:peng:zpeng@sina.com,yt.sohu.com

       #newaliases   --写到库中

       5、邮件控制文档--access

       relay、ok、reject和discard。relay能够实现转发。ok是用来允许用户的任意访问,他会覆盖任何其他已建立的检查(实际配置中,最好别设这项,除非您对该用户是绝对信任的);reject能够实现对来访地址的拒绝,他根本就不容许该地址和您的邮件服务器进行连接通信;discard的作用是在接收到传输的邮件消息后,偷偷地把他丢弃掉(在发送者看来,他的邮件的确是接收了,但他并不知道,发送的目的地址根本不可能接收到他的邮件,服务器巧妙地欺骗了他。

       vi /etc/mail/access.

       localhost.localdomain    RELAY      ---允许

       localhostRELAY

       .0.0.1                       RELAY

       peng@sina.com              ok

       @sexgirl.net                   reject

       ...                  discard

       #makemap hash access.db 写入库中

       6、虚拟用户文档---virtusertable.

       这个文档能够mail重名问题。

       例如:您有两个域名,virt1.com and virt2.com,但是都有peng这个用户:

       peng@virt1.com and peng@virt2.com,这是两个用户。但对于系统用户来说,他只认系统用户peng,只能通过一下改:

       vi /etc/mail/virtusertable

       peng@virt2.com   r

       这样就能够了。在新开一个用户r,但是peng@virt2.com在客户端的pop3 and smtp server的用户名和口令要用r的。

       #makemap hask virtusertable.db

       # /usr/sbin/sendmail -d0.1 -bv root |grep SASL

       NAMED_BIND NETINET NETINET6 NETUNIX NEWDB NIS QUEUE SASL SCANF

       我的问题已找到了是/usr/lib/sasl/Sendmail.conf的文档名中的S没有大写,问题已解决