社区
网络编程
帖子详情
【求助】怎样编程实现SSL/TSL连接Gmail这样的SMTP服务器发送邮件?
smcrescent
2007-02-27 11:11:26
RT..
另:用telnet可以连上smtp.gmail.com 587
但是到了STARTTLS以后 不管输入什么都会断开连接了
telnet不支持这种SSL/TLS连接吗?
谢谢~~
...全文
1490
7
打赏
收藏
【求助】怎样编程实现SSL/TSL连接Gmail这样的SMTP服务器发送邮件?
RT.. 另:用telnet可以连上smtp.gmail.com 587 但是到了STARTTLS以后 不管输入什么都会断开连接了 telnet不支持这种SSL/TLS连接吗? 谢谢~~
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
CathySun118
2007-05-11
打赏
举报
回复
http://www.yesky.com/20021119/1640691.shtml
kingbird
2007-05-11
打赏
举报
回复
#include <openssl/crypto.h>
#include <openssl/x509.h>
#include <openssl/pem.h>
#include <openssl/ssl.h>
#include <openssl/err.h>
#define CHK_NULL(x) if ((x)==NULL) exit (1)
#define CHK_ERR(err,s) if ((err)==-1) { perror(s); exit(1); }
#define CHK_SSL(err) if ((err)==-1) { ERR_print_errors_fp(stderr); exit(2); }
void main ()
{
int err;
int sd;
struct sockaddr_in sa;
SSL_CTX* ctx;
SSL* ssl;
X509* server_cert;
char* str;
char buf [4096];
SSL_METHOD *meth;
SSLeay_add_ssl_algorithms();
meth = SSLv2_client_method();
SSL_load_error_strings();
ctx = SSL_CTX_new (meth); CHK_NULL(ctx);
CHK_SSL(err);
/* ----------------------------------------------- */
/* Create a socket and connect to server using normal socket calls. */
sd = socket (AF_INET, SOCK_STREAM, 0); CHK_ERR(sd, "socket");
memset (&sa, '\0', sizeof(sa));
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = inet_addr ("127.0.0.1"); /* Server IP */
sa.sin_port = htons (1111); /* Server Port number */
err = connect(sd, (struct sockaddr*) &sa,
sizeof(sa)); CHK_ERR(err, "connect");
/* ----------------------------------------------- */
/* Now we have TCP conncetion. Start SSL negotiation. */
ssl = SSL_new (ctx); CHK_NULL(ssl);
SSL_set_fd (ssl, sd);
err = SSL_connect (ssl); CHK_SSL(err);
/* Following two steps are optional and not required for
data exchange to be successful. */
/* Get the cipher - opt */
printf ("SSL connection using %s\n", SSL_get_cipher (ssl));
/* Get server's certificate (note: beware of dynamic allocation) - opt */
server_cert = SSL_get_peer_certificate (ssl); CHK_NULL(server_cert);
printf ("Server certificate:\n");
str = X509_NAME_oneline (X509_get_subject_name (server_cert),0,0);
CHK_NULL(str);
printf ("\t subject: %s\n", str);
OPENSSL_free (str);
str = X509_NAME_oneline (X509_get_issuer_name (server_cert),0,0);
CHK_NULL(str);
printf ("\t issuer: %s\n", str);
OPENSSL_free (str);
/* We could do all sorts of certificate verification stuff here before
deallocating the certificate. */
X509_free (server_cert);
/* --------------------------------------------------- */
/* DATA EXCHANGE - Send a message and receive a reply. */
err = SSL_write (ssl, "Hello World!", strlen("Hello World!")); CHK_SSL(err);
err = SSL_read (ssl, buf, sizeof(buf) - 1); CHK_SSL(err);
buf[err] = '\0';
printf ("Got %d chars:'%s'\n", err, buf);
SSL_shutdown (ssl); /* send SSL/TLS close_notify */
/* Clean up. */
close (sd);
SSL_free (ssl);
SSL_CTX_free (ctx);
}
kingbird
2007-05-11
打赏
举报
回复
在 winsocket 的函数调用过程中需要调用 Openssl 中的函数,来支持 SSL 连接。
SMTP 命令都是标准的命令。
gel_ink
2007-05-10
打赏
举报
回复
应该查SMTP标准吧.
smcrescent
2007-02-28
打赏
举报
回复
UP
smcrescent
2007-02-27
打赏
举报
回复
怎样编程实现SSL/TSL连接Gmail这样的SMTP服务器发送邮件呢?谢谢~~
neosu
2007-02-27
打赏
举报
回复
telnet不支持ssl。
Java Socket
实现
SMTP
邮件发送,支持
SSL
/
TSL
Java Socket
实现
SMTP
邮件发送,支持
SSL
/
TSL
java socket
实现
smtp
发送邮件
,支持
SSL
上次传的好像问题蛮多的,评论有人说qq不能发,自己查了下,确实qq的
smtp
服务器
端口改了,新的端口为465,
SSL
协议,所以现在这个应该是支持qq,
gmail
的,测试过了。小弟不才,能用就ok啦。
基于Java Socket
实现
的
SMTP
邮件客户端 - 全面支持
SSL
, TLS
协议完成有: - 最小化完成了RFC821, RFC822, 简单的邮件发送协议,邮件格式化协议 - 最小化完成RFC4648 - Base64编码协议 - 完成扩展协议[MS-XLOGIN] - 基于
SSL
Socket完成的支持
SSL
, TLS等加密
SMTP
传输协议 基于S...
常用邮箱
SMTP
/POP3地址及端口
GMAIL
: 接收邮件
服务器
: pop.
gmail
.com 接收端口: 995(必须使用
ssl
)
发送邮件
服务器
:
smtp
.
gmail
.com 发送端口: 465(必须使用
ssl
)或者587(TLS/STARTTLS) IMAP接收邮件
服务器
: imap.
gmail
.com 接收端口: 993(必须使用
ssl
) 163邮箱(126类似163,参照即可): 接收邮件
服务器
: pop.163.com 接收端口: 110或995(使用
ssl
时) 接收邮件
服务器
: imap.163.com
常用邮箱的 IMAP/POP3/
SMTP
设置是什么?
SMTP
发件
服务器
地址:
smtp
.163.com 安全类型:
SSL
端口号:465 / 994 注:1、126邮箱的
SMTP
服务器
地址:
smtp
.126.com ,yeah邮箱的
SMTP
服务器
地址:
smtp
.yeah.net;一旦将邮件从邮件
服务器
端送到客户端上,邮件
服务器
上的邮件将会被删除。POP3协议允许电子邮件客户端下载
服务器
上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到
服务器
上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱
服务器
上的这些邮件是没有同时被移动的。
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章