利用SMTP发送Mail详解(一)

在以前接触的项目中,一直都是在做网站时用到了发送mail 的功能,在asp.net 中都有相关的发送mail 的类, 实现起来非常简单。最近这段时间因工作需要在C++ 中使用发送mail 的功能,上网搜了一大堆资料,终于得以实现,总结自己开发过程中碰到的一些问题,希望对需的人有所帮助, 由于能力有限, 文中不免有些误解之处, 望大家能指正!!

其实,使用C++ 发送mail 也是很简的事, 只需要了解一点SMTP 协议和socket 编程就OK, 网络上也有很多高人写好的mail 类源码,有兴趣的朋友可以下载看看.

 

1.     SMTP 常用命令简介

1). SMTP 常用命令

HELO/EHLO 向服务器标识用户身份

MAIL 初始化邮件传输

mail from:

RCPT 标识单个的邮件接收人;常在MAIL 命令后面

可有多个rcpt to:

DATA 在单个或多个RCPT 命令后,表示所有的邮件接收人已标识,并初始化数据传输,以. 结束。

VRFY 用于验证指定的用户/ 邮箱是否存在;由于安全方面的原因,服务器常禁止此命令

EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用

HELP 查询服务器支持什么命令

NOOP 无操作,服务器应响应OK

QUIT 结束会话

RSET 重置会话,当前传输被取消

 

如你对SMTP 命令不了解,可以用telnet 命令登陆到smtp 服务器用help 命令进行查看:

220 tdcsw.maintek.corpnet.asus ESMTP Sendmail 8.13.8/8.13.8; Sat, 9 Jan 2010 10:
45:09 +0800
help
214-2.0.0 This is sendmail
214-2.0.0 Topics:
214-2.0.0       HELO    EHLO    MAIL    RCPT    DATA
214-2.0.0       RSET    NOOP    QUIT    HELP    VRFY
214-2.0.0       EXPN    VERB    ETRN    DSN     AUTH
214-2.0.0       STARTTLS
214-2.0.0 For more info use "HELP <topic>".
214-2.0.0 To report bugs

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是对以上参数的翻译和解释: ```java // 设置邮件信息 Properties props = new Properties(); props.setProperty("mail.transport.protocol", "smtp"); props.setProperty("mail.smtp.host", myEmailSMTPHost); props.setProperty("mail.smtp.auth", "true"); props.setProperty("mail.smtp.port", smtpPort); props.setProperty("mail.smtp.ssl.enable", "true"); props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.setProperty("mail.smtp.socketFactory.fallback", "true"); props.setProperty("mail.smtp.socketFactory.port", smtpPort); ``` 解释: - `mail.transport.protocol`: 指定邮件传输协议,这里设置为 "smtp",即使用 SMTP 协议。 - `mail.smtp.host`: 指定 SMTP 服务器的主机名,即发送邮件的服务器。 - `mail.smtp.auth`: 指定是否需要身份验证,这里设置为 "true",表示需要进行身份验证。 - `mail.smtp.port`: 指定 SMTP 服务器的端口号,即邮件传输使用的端口。 - `mail.smtp.ssl.enable`: 指定是否启用 SSL 加密,这里设置为 "true",表示启用 SSL 加密。 - `mail.smtp.socketFactory.class`: 指定用于创建 SSL Socket 的类,这里设置为 "javax.net.ssl.SSLSocketFactory"。 - `mail.smtp.socketFactory.fallback`: 指定是否回退到普通 Socket 连接,当 SSL Socket 连接失败时,这里设置为 "true",表示回退到普通 Socket 连接。 - `mail.smtp.socketFactory.port`: 指定 SSL Socket 的端口号,与 `mail.smtp.port` 相同。 以上是对注释中的参数进行的翻译和解释。这些参数用于设置邮件相关的配置,包括 SMTP 服务器、身份验证、加密等。根据具体需求和邮件服务器的配置,可以适当调整这些参数的值。 如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值