搭建一个本地 SMTP 服务器

由于 SMTP 服务器的开放端口和安全性问题,许多现代邮件服务器不再允许直接通过 Telnet 连接到标准的 25 端口发送邮件,尤其是未经认证的用户。因此,许多公共电子邮件服务商如 Gmail、Yahoo 等也禁用了这种方式,转而要求使用更安全的加密连接,如通过 SSL/TLS 连接发送邮件。

不过,如果你有权限使用某个 SMTP 服务器(比如你自己公司的邮件服务器或本地服务器),你可以联系你的邮件服务器管理员获取服务器的名称和端口号,确保你可以通过 Telnet 进行实验。

如果你想自己搭建一个本地 SMTP 服务器

你可以在本地机器上运行一个简单的 SMTP 服务器,用来进行 Telnet 测试。以下是一些常用工具和步骤:

1. 使用 Python 自带的 SMTP 服务器

如果你使用的是 Linux 或 macOS,甚至 Windows,并且安装了 Python,可以通过以下命令在本地启动一个简单的 SMTP 服务器:

python -m smtpd -c DebuggingServer -n localhost:1025

这会启动一个运行在本地 localhost 上的 SMTP 服务器,监听 1025 端口。

2. 连接到本地 SMTP 服务器

启动后,你可以通过以下 Telnet 命令连接到本地 SMTP 服务器:

telnet localhost 1025

连接成功后,你就可以按照之前的步骤发送邮件了。

请确保严格按照以下步骤来发送邮件:

完整的 SMTP 命令顺序:

  1. HELO 命令(服务器问候):

    HELO mydomain.com
    
  2. MAIL FROM 命令(指定发件人):

    MAIL FROM: <alice@mydomain.com>
    
  3. RCPT TO 命令(指定收件人):

    RCPT TO: <bob@otherdomain.com>
    
  4. DATA 命令(准备发送邮件内容):

    DATA
    
  5. 输入邮件内容
    在服务器提示 354 Enter message, end with "." on a line by itself 后,输入邮件正文,最后用一个单独的句号 . 结束邮件内容:

    Subject: Test Email
    Hello,
    This is a test email sent via Telnet and Python SMTP server.
    .
    
  6. QUIT 命令(结束会话):

    QUIT
    

示例流程:

telnet localhost 1025
220 uavris-Lenovo-Legion-Y7000P2020 Python SMTP proxy version 0.2
HELO mydomain.com
250 Hello mydomain.com, pleased to meet you
MAIL FROM: <alice@mydomain.com>
250 Sender OK
RCPT TO: <bob@otherdomain.com>
250 Recipient OK
DATA
354 Enter message, end with "." on a line by itself
Subject: Test Email
Hello,
This is a test email sent via Telnet and Python SMTP server.
.
250 Message accepted for delivery
QUIT
221 Goodbye

关键点:

  • MAIL FROM 之后一定要先用 RCPT TO 指定收件人,才能执行 DATA 命令。
### 如何使用 Zoho 和 SMTP 搭建配置邮箱服务 #### 创建 Zoho 邮箱账户 为了通过 SMTP 发送电子邮件,首先需要创建一个 Zoho Mail 账户。访问 [Zoho 官方网站](https://www.zoho.com/mail/)并按照指示注册新用户。 #### 获取 SMTP 设置参数 完成账号建立之后,记录下用于发送邮件所需的 SMTP 参数: - **SMTP Server**: smtp.zoho.com - **Port Number (SSL)**: 465 或者 Port Number (TLS): 587 - **Username**: 登录名即完整的电子信箱地址 - **Password**: 用户密码或者应用专用密钥(如果启用了两步验证) #### 测试 SMTP 连接 下面是一个 Python 的例子来测试与 Zoho SMTP 服务器之间的连接: ```python import smtplib from email.mime.text import MIMEText from email.header import Header def send_email(): sender = 'your-email@zohomail.com' receivers = ['receiver@example.com'] message = MIMEText('This is a test mail', 'plain', 'utf-8') message['Subject'] = Header('Test Subject', 'utf-8') try: server = smtplib.SMTP_SSL("smtp.zoho.com", 465) server.login(sender, "YourSecurePassword") server.sendmail(sender, receivers, message.as_string()) print("Successfully sent email") except Exception as e: print(f"Failed to send email {e}") finally: server.quit() send_email() ``` 此脚本会尝试向指定接收者发送一封简单的纯文本邮件[^1]。 #### 修改 DNS 记录以提高送达率 为了让由自定义域名发出的邮件有更好的信誉度以及更高的投递成功率,在域名提供商处更新 MX、SPF 及 DKIM 等相关 DNS 条目指向 Zoho 提供的服务[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值