社区
网络及通讯开发
帖子详情
不通过网上的邮件服务器,直接利用本机发送邮件?
zyongsoft
2005-09-11 10:06:57
写一个程序,直接用这个程序发送邮件,不借助任何的网络服务器,请问这可以实现吗?
请提供思路和相关例子和代码?谢谢
...全文
651
16
打赏
收藏
不通过网上的邮件服务器,直接利用本机发送邮件?
写一个程序,直接用这个程序发送邮件,不借助任何的网络服务器,请问这可以实现吗? 请提供思路和相关例子和代码?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
binbin
2005-10-15
打赏
举报
回复
pazee(耙子):
收礼只收尿不湿?宝宝多大啦?
耙子
2005-10-15
打赏
举报
回复
俺闺女11个月了!
icwin
2005-10-15
打赏
举报
回复
up
耙子
2005-10-14
打赏
举报
回复
现在大部分服务器都会拒收这类的邮件。
目前采用的anti-spam 的大致策略是
1.检查 发件者的MX记录,如果发件者没有提供域名则认为是spaw;(自建的smtp服务器发现基本都会被拒绝)
2.检查发件者的ip,进行反向dns查询(类似whois,从IP查DNS),楼主这类的mail会被直接认定为spaw的;
3.邮件黑名单;
4.贝叶斯统计分析;
shadowstar
2005-10-14
打赏
举报
回复
收藏
constantine
2005-10-14
打赏
举报
回复
<怎样使用C++ Builder 6 制作邮件特快专递程序.pdf> 可以找这个文件,下面是她的内容
怎样使用C++ Builder 6 制作邮件特快专递程序
谢煜波
网名:潇寒
OICQ:13916830
Email: xiaohanemail@163.com
Email: xieyuboemail@163.com
http://soft.binghua.com
本文为原创文,转载请注明出处、作者。若对文章内容有什么疑问,或要做改动,请与
作者联系。未经许可,请勿用于商业用途。
说起邮件特快专递,大家也许都不默生,比如大名鼎鼎的Foxmail 就自带有这个特快专
递程序,不过遗憾的是,它一次只能发一封邮件。其实大家很容易想到,如果做一个循环,
是很容易实现特快专递的群发的,但为什么Foxmail 没有做呢?这个我也不知道。不过,有
了C++ Builder 6,我们要实现这个功能也是非常容易的。现在,我们就一起来看一下,怎样
制作这样一个特快专递程序。
要制作这样一个特快专递程序,我们用到了C++ Builder 6 所带的最新的Internet 访问
套件——Indy 套件,主要使用到了TIdDNSResolver、TIdMessage、TIdSMTP 这三个控件。
从名称中我们可能猜到,TIdDNSResolver 用来获得DNS 解析,TIdMessage 用来组织所要传
送的邮件信息,而TIdSMTP 这个控件支持SMTP 协议,我们使用它来传送邮件。
下面一步,我们构建界面,如下图所示:(其中TIdMessage 位于控件栏Indy Misc 页面,
其余两个组件位于Indy Clients 页面)
下面,我们开始编写代码,以实现功能(注意:为突出主要问题,笔者默让一切输入均
合法,故未加正确校验。)下面是完整的代码,并有详细注
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::GetToAddIP(AnsiString dns)
{
DNS->ClearVars(); //清除前一次查询所返回的信息
DNS->Host = "202.118.224.101"; //设定DNS 服务器的主机
DNS->DNSQDList->Clear(); //消空上次查询信息
//下面开始构造需要向服务器发送的查询信息
DNS->DNSHeader->Qr = false; //false 表示这是一个查询请求
DNS->DNSHeader->Opcode = cResQuery; //表示这是一个标准模式的查询
DNS->DNSHeader->RD = true; //表示可以递归查询,即这个DNS 服务器没查到,则
自动跳到下一个服务器查询
DNS->DNSHeader->QDCount = 1; //指出查询的数量
TQuestionItem * item = DNS->DNSQDList->Add();
item->QName = dns; //欲查询的域名
item->QType = cMX; //表示查询一个邮件交换记录
item->QClass = cIN; //表示查询用于Internet
DNS->ResolveDNS(); //向服务器发出查询请求
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//下面根据用户信息,填充欲发送的邮件的信息体。
MSG->Body->Text = Memo1->Text ; //邮件正文
MSG->From->Address = FromAdd->Text ; //发信人地址
MSG->Recipients->EMailAddresses = ToAdd->Text; //收信人地址
MSG->Subject = "冰花邮件特快专递 演示!"; //主题
int pos = ToAdd->Text.Pos("@");
GetToAddIP(ToAdd->Text.SubString(pos + 1 , ToAdd->Text.Length() - pos)); //通过对
方邮件地址查询对方邮件服务器主机
SMTP->Host = DNS->DNSAnList->Items[0]->RData.MX.Exchange; //设定主机地址为
对方邮件服务器的主机。注意,返回的是一个列表,表示有多个主机,这里取第一个主机
SMTP->Connect();
try{
SMTP->Send(MSG); //发送邮件
}
__finally{
SMTP->Disconnect();
}
ShowMessage("完成!");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SMTPStatus(TObject *axSender,
const TIdStatus axStatus, const AnsiString asStatusText)
{
StatusBar->Panels->Items[0]->Text = asStatusText;
}
//---------------------------------------------------------------------------
上面的程序很简单,也就不多做解释了,下面另外谈点注意:
1. 你取回来的邮件服务器可能有多个, 它是一个列表, 而且通过
DNS->DNSAnList->Items[0]->RData.MX.Preference;你可以获得对应的服务器的优先
级,这样你就可以选择优先级高,或者在一个服务器忙时,换用另一个服务器进行处
理。这一点,好像Foxmail 也没有这样做,因为小可有时用特快专递时发不出去,原
因就在于对方服务器忙。
2. TIdMessage 可以带有很多其它信息,如“抄送地址”、“暗送地址”、“回复地址”
等,你可以读读帮助,以写出功能更强大的邮件特快专递程序!(呵呵,写好之后,别
忘让小可用用啊!^_^)
3. 通过类似的方式,你也可以写一般的发信程序,只是不再需要DNS 解析了。
本程序在C++ Builder 6 下调式通过, 源程序大家可以去,
http://mysnowwave.8u8.com/source/bh_fast_email_source_bcb6.rar 下载。
constantine
2005-10-14
打赏
举报
回复
邮件特快专递功能应该就是,网上有一个pdf文件,包括源代码,几个月前也有人问了你找找
不过这个功能好像没有什么用,很多邮箱都屏蔽掉这个功能,所以收不到,类似sina好象都不行
163.com好像才可以
zsp5869999
2005-10-14
打赏
举报
回复
www.51merit.com
上有
电子邮件钻探机v1.0
电子邮件钻探机(漫游者)v1.1
电子邮件群发机v1.0
的源代码!
qq:42872272
同样,你的问题都不是问题!
webwebweb
2005-09-20
打赏
举报
回复
查詢郵件所屬域的MX紀錄.
比如: 你想直接給一個yahoo的人發送郵件(remote_friend@yahoo.com.cn)
那麼你先查詢yahoo.com.cn的MX紀錄(假設是10.100.10.1). 然後
連接查詢到的IP地址(端口號是25). 然後從本機直接發送就可以了.
foxmail就是這樣做的.
lander9999
2005-09-20
打赏
举报
回复
看RFC文档关于SMTP部份,然后用Socket实现SMTP协议,通讯不难,难就难在编码上,网上有很多奇怪的SMTP服务器,你用别人的控件总有想不到的问题,还是自已搞比较好。如果编码暂时不会也没关系,看你的应用了,你可以用FoxMail直接生成经过编码的邮件源,再来发送。
tgtt
2005-09-14
打赏
举报
回复
TSmtpRelayServer好象是要money钱的,
思路是先查询邮件服务器的目标地址,然后用SMTP连接就行了,
你需要找个DNS地址
binbin
2005-09-12
打赏
举报
回复
楼上的,可以在本实现一个SMTP服务器就可以了,SMTP与POP3没什么关系,只要能发出去就行了.
理论上说只要有一个可用的DNS服务器解析目标地址就可以了,SMTP服务器在本机实现.
楼主可以去网上找一个TSmtpRelayServer控件.
liu_jun_ivan
2005-09-12
打赏
举报
回复
你的思路是行不通的,如果仅仅实现SMTP协议进行邮件发送的话肯定完全没有问题。但不借助任何的网络服务器,那邮件被放到哪里呢,总得有个临时存放的地方,直到接收邮件一方把它取走。如果邮件发送的同时,接收方就进行接收,而没有POP3服务器做中间件的话,那就不叫发邮件,而成了点对点的通信了,跟邮件无关。真正的邮件方式是离不开邮件服务器的,只是你可以把邮件服务器做到本地而不借助其它网络服务器,比如你的发端既实现SMTP、又实现POP3,同时保证接收方未取走邮件之前不要关机,并POP3服务正常工作。但问题是,SMTP实现起来很简单,要自己实现POP3还是有一定难度的。
netsys2
2005-09-12
打赏
举报
回复
用SMTP控件。
完整的例子在
cb\examples\fastnet\SMTP
weill
2005-09-12
打赏
举报
回复
FoxMail的快递就是使用的这个功能。
要注意的是,有些信箱站会据收此类信件。
huzhangyou
2005-09-11
打赏
举报
回复
内置SMTP发送
我记得好像网上有例子
SpringBoot实现发送电子
邮件
目录 电子
邮件
与Java
发送
邮件
的历史 电子
邮件
原理 电子
邮件
服务器
电子邮箱
邮件
客户端
邮件
传输协议
邮件
格式 电子
邮件
发送和接收流程 电子使用场景 SpringBoot实现发送电子
邮件
准备账号 构建项目并配置 实现服务端代码 新建
邮件
模板 测试
发送
邮件
总结 相关链接 从1969年10月世界上的第一封电子
邮件
发出,到2019年,已经过去将近半个世纪了。虽然即时通讯和...
linux下用mail
发送
邮件
利用
外部邮箱
发送
邮件
的方法 bin/mail会默认使用本地sendmail
发送
邮件
,这样要求本地的机器必须安装和启动Sendmail服务,配置非常麻烦,而且会带来不必要的资源占用。而通过修改配置文件可以使用外部SMTP
服务器
,可以达到不使用sendmail而用外部的smtp
服务器
发送
邮件
的目的:修改/etc/nail.rc (/etc/m
smtp
邮件
服务器
编程
刚开始做
邮件
服务器
开发,一切都是茫然的。在书上
网上
都很难找到一套完整的
邮件
服务器
开发教程。在个人的摸索中碰到了很多蛋疼得问题。现终于完成了,将我的开发经验分享给大家。
邮件
实现详解(一)------
邮件
发送的基本过程与概念
https://www.cnblogs.com/ysocean/p/7652934.html 这个人博客很多干货,是个牛人,可以点进去多看看 目录 1、电子
邮件
的发送和接收过程 1、
邮件
服务器
2、电子邮箱 3、
邮件
客户端软件 4、
邮件
传输协议 5、总结 相信大家在日常工作生活中少不了和
邮件
打交道,比如我们会用
邮件
进行信息交流,向上级汇报日常工作;再比如大家熟悉的某个...
linux搭建
邮件
服务器
linux搭建
邮件
服务器
一、概述: 在配置
邮件
服务器
之前,先解释几个概念。 通常使用Email都很容易,但是Internet的
邮件
系统是通过几个复杂的部分连接而成的,对于最终用户而言,我们熟悉的Outlook,Foxmail等都是用来收信和发信的,称之为MUA:Mail User Agent,
邮件
用户代理。 MUA并非
直接
将
邮件
发送至收件人手中,而是通过MTA:Mail Tr...
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章