#2013_10_02   星期三   add by greshem
J:\portage\mail-mta\esmtp\esmtp-1.2.chm
main
 373         rcfile_parse(rcfile);
 374
 378         if (!message_parse_headers(message))
 384
 385         /* Add remaining program arguments as message recipients. */
 386         while (optind < argc)
 387                 message_add_recipient(message, argv[optind++]);
 389         identities_init();
 391         drop_sgids();
 393         message_send(message);
                  smtp_send(message,identity);
                    #下面的函数 都来自于 libesmtp
                    smtp_create_session ()))
                    smtp_set_monitorcb (session, monitor_cb, NULL, 1))
                    smtp_set_eventcb (session, event_cb, NULL))
                    smtp_set_hostname (session, identity->helo))
                    smtp_set_server (session, identity->host ? identity->host : "localhost:25"))
                    smtp_starttls_enable (session, identity->starttls))
                    smtp_starttls_set_password_cb (tlsinteract, identity))
                    smtp_auth_set_context (session, authctx))
                    smtp_option_require_all_recipients (session, 1))
                    smtp_add_message (session)))
                    smtp_set_reverse_path (message, value))
                    smtp_set_header (message, "From", NULL, msg->reverse_path))
                    smtp_set_reverse_path (message, msg->reverse_path))
                    smtp_set_reverse_path (message, identity->address))
                    smtp_set_reverse_path (message, reverse_path))
                    smtp_set_messagecb (message, message_cb, msg))
                    smtp_set_header (message, "Sender", NULL, value))
                    smtp_set_header_option (message, "Sender", Hdr_OVERRIDE, (int)1))
                    smtp_set_header_option(message, "Message-ID", Hdr_PROHIBIT, (int)1))
                    smtp_dsn_set_ret(message, msg->ret))
                    smtp_dsn_set_envid(message, msg->envid))
                    smtp_8bitmime_set_body(message, msg->body))
                    smtp_add_recipient (message, entry->address)))
                    smtp_dsn_set_notify (recipient, msg->notify))
                    smtp_add_recipient (message, qualifiedaddress)))
                    smtp_dsn_set_notify (recipient, msg->notify))
                    smtp_start_session (session))
                    smtp_strerror (smtp_errno (), buf, sizeof(buf)));
                    smtp_message_transfer_status (message)))
                    smtp_message_transfer_status (message);
                    smtp_enumerate_recipients (message, print_recipient_status, NULL);
                    smtp_destroy_session (session);
                    smtp_strerror (smtp_errno (), buf, sizeof(buf)));

local_init(message);
                  local_flush(message);
                  local_init(message);
                  smtp_send(message,identity);
                  local_flush(message);
                  local_cleanup();

395         identities_cleanup();

esmtp 源码 分析相关推荐

  1. 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析

    目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...

  2. SpringBoot-web开发(四): SpringMVC的拓展、接管(源码分析)

    [SpringBoot-web系列]前文: SpringBoot-web开发(一): 静态资源的导入(源码分析) SpringBoot-web开发(二): 页面和图标定制(源码分析) SpringBo ...

  3. SpringBoot-web开发(二): 页面和图标定制(源码分析)

    [SpringBoot-web系列]前文: SpringBoot-web开发(一): 静态资源的导入(源码分析) 目录 一.首页 1. 源码分析 2. 访问首页测试 二.动态页面 1. 动态资源目录t ...

  4. SpringBoot-web开发(一): 静态资源的导入(源码分析)

    目录 方式一:通过WebJars 1. 什么是webjars? 2. webjars的使用 3. webjars结构 4. 解析源码 5. 测试访问 方式二:放入静态资源目录 1. 源码分析 2. 测 ...

  5. Yolov3Yolov4网络结构与源码分析

    Yolov3&Yolov4网络结构与源码分析 从2018年Yolov3年提出的两年后,在原作者声名放弃更新Yolo算法后,俄罗斯的Alexey大神扛起了Yolov4的大旗. 文章目录 论文汇总 ...

  6. ViewGroup的Touch事件分发(源码分析)

    Android中Touch事件的分发又分为View和ViewGroup的事件分发,View的touch事件分发相对比较简单,可参考 View的Touch事件分发(一.初步了解) View的Touch事 ...

  7. View的Touch事件分发(二.源码分析)

    Android中Touch事件的分发又分为View和ViewGroup的事件分发,先来看简单的View的touch事件分发. 主要分析View的dispatchTouchEvent()方法和onTou ...

  8. MyBatis原理分析之四:一次SQL查询的源码分析

    上回我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的. 准备工作 Mybatis完成一次SQL查询需要使用的代码如下: Java代码   String res ...

  9. [转]slf4j + log4j原理实现及源码分析

    slf4j + log4j原理实现及源码分析 转载于:https://www.cnblogs.com/jasonzeng888/p/6051080.html

最新文章

  1. 数据源架构模式之表数据入口
  2. 一些长时间GC停顿问题的排查及解决办法
  3. 原生ajax封装,数据初始化,
  4. c语言词法分析程序,词法分析器(c语言实现)
  5. u检验、t检验、F检验、X2检验 (转)
  6. Android开发之Java和Kotlin混合开发互相跳转报错的问题
  7. Hbase单点安装Version1.1.5
  8. c语言实现感知器算法,感知器算法(c语言版).doc
  9. call and apply
  10. 在vue中使用echarts之世界各地到中国某些城市的航线
  11. 2019年网络安全灾难事件,5大勒索病毒软件
  12. 流风ASP.NET框架企业版试用地址公布
  13. RESTful及其特点
  14. 1919 Problem A 二叉排序树
  15. 慧数纵览:日产在华三大工厂将减产30,000辆
  16. 软件测试需要什么思维,做软件测试需要学习什么
  17. OSChina 周一乱弹 —— 装睡看看男友的反应
  18. 虚假发货的定义,虚假发货的情形有哪些,虚假交易的处罚
  19. appium环境搭建-android自动化
  20. 如何在AE中快速预览?

热门文章

  1. 程序员需要学习英语吗?
  2. TCP-IP详解卷一(一)概述
  3. Linux系统调用之SYSCALL_DEFINE
  4. html表格垂直居中的CSS代码,使用3行CSS代码使任何元素垂直居中
  5. 5分钟理解边缘概率,联合概率,条件概率,随机事件独立,随机事件依赖
  6. GPON与XGPON优势和劣势
  7. 【架构分析】Weston Inside - 基础数据结构详解
  8. 001-TensorFlow 2.0 教程-Transformer
  9. IntelliJ IDEA汉化
  10. BookKeeper设计介绍及其在Hadoop2.0 Namenode HA方案中的使用分析