esmtp 源码 分析
#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 源码 分析相关推荐
- 【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析
目录[阅读时间:约10分钟] 一.概述 二.对比: gorilla/mux与net/http DefaultServeMux 三.简单使用 四.源码简析 1.NewRouter函数 2.HandleF ...
- SpringBoot-web开发(四): SpringMVC的拓展、接管(源码分析)
[SpringBoot-web系列]前文: SpringBoot-web开发(一): 静态资源的导入(源码分析) SpringBoot-web开发(二): 页面和图标定制(源码分析) SpringBo ...
- SpringBoot-web开发(二): 页面和图标定制(源码分析)
[SpringBoot-web系列]前文: SpringBoot-web开发(一): 静态资源的导入(源码分析) 目录 一.首页 1. 源码分析 2. 访问首页测试 二.动态页面 1. 动态资源目录t ...
- SpringBoot-web开发(一): 静态资源的导入(源码分析)
目录 方式一:通过WebJars 1. 什么是webjars? 2. webjars的使用 3. webjars结构 4. 解析源码 5. 测试访问 方式二:放入静态资源目录 1. 源码分析 2. 测 ...
- Yolov3Yolov4网络结构与源码分析
Yolov3&Yolov4网络结构与源码分析 从2018年Yolov3年提出的两年后,在原作者声名放弃更新Yolo算法后,俄罗斯的Alexey大神扛起了Yolov4的大旗. 文章目录 论文汇总 ...
- ViewGroup的Touch事件分发(源码分析)
Android中Touch事件的分发又分为View和ViewGroup的事件分发,View的touch事件分发相对比较简单,可参考 View的Touch事件分发(一.初步了解) View的Touch事 ...
- View的Touch事件分发(二.源码分析)
Android中Touch事件的分发又分为View和ViewGroup的事件分发,先来看简单的View的touch事件分发. 主要分析View的dispatchTouchEvent()方法和onTou ...
- MyBatis原理分析之四:一次SQL查询的源码分析
上回我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的. 准备工作 Mybatis完成一次SQL查询需要使用的代码如下: Java代码 String res ...
- [转]slf4j + log4j原理实现及源码分析
slf4j + log4j原理实现及源码分析 转载于:https://www.cnblogs.com/jasonzeng888/p/6051080.html
最新文章
- 数据源架构模式之表数据入口
- 一些长时间GC停顿问题的排查及解决办法
- 原生ajax封装,数据初始化,
- c语言词法分析程序,词法分析器(c语言实现)
- u检验、t检验、F检验、X2检验 (转)
- Android开发之Java和Kotlin混合开发互相跳转报错的问题
- Hbase单点安装Version1.1.5
- c语言实现感知器算法,感知器算法(c语言版).doc
- call and apply
- 在vue中使用echarts之世界各地到中国某些城市的航线
- 2019年网络安全灾难事件,5大勒索病毒软件
- 流风ASP.NET框架企业版试用地址公布
- RESTful及其特点
- 1919 Problem A 二叉排序树
- 慧数纵览:日产在华三大工厂将减产30,000辆
- 软件测试需要什么思维,做软件测试需要学习什么
- OSChina 周一乱弹 —— 装睡看看男友的反应
- 虚假发货的定义,虚假发货的情形有哪些,虚假交易的处罚
- appium环境搭建-android自动化
- 如何在AE中快速预览?