Ubuntu下发送邮件

本文介绍了如何在Ubuntu系统中安装和配置mail命令,包括sudoapt-getinstallheirloom-mailx,以及后续的SMTP设置,提供了三种发送邮件的方法:交互式、通道式和文件内容读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • mail命令在Ubuntu下是需要安装的,使用下条命令进行安装:
  •  sudo apt-get install heirloom-mailx
  • 接下来输入用户密码,等待安装完成
  • 此时还不能发送外部服务器邮件,需要完成以下配置,修改/etc/nail.rc或者/etc/s-nail.rc(Ubuntu)、/etc/mail.rc(centOS)
  • vi /etc/nail.rc或者/etc/s-nail.rc
  • 此时如果打印没有权限则使用sudo命令
  • 在nail.rc文件末尾添加一下两行代码:
  • set from=邮箱地址 smtp=smtp.邮箱地址后缀 //如set from=123456@qq.com smtp=smtp.qq.com
  • set smtp-auth-user=邮箱地址 smtp-auth-password="邮箱密码" smtp-auth=login
  • 按照以上步骤设置完毕之后即可使用mail命令发送邮件,发送邮件有以下三种方式:
  • 方法一:交互形式发送邮件
    • mail + 邮箱地址
    • 填写主题
    • 填写内容
    • ctrl + d 结束输入
    • cc代表抄送,回车完成发送
  • 方法二:通道形式发送
    • echo "邮件内容" | mail -s "主题" 邮箱地址
  • 方法三:读取文件内容发送
    • mail -s "主题" "邮箱地址" < "path/filename"  
### 实现 Ubuntu 系统上通过 Python 脚本发送电子邮件 为了实现在 Ubuntu 系统上利用脚本自动发送电子邮件,需先安装 `smtplib` 库用于处理邮件传输协议,并使用 `email.mime` 创建复杂的 MIME 对象作为邮件内容[^1]。 #### 安装必要库 对于 Python 3.x 版本,默认已经包含了 `smtplib` 和 `email` 模块,因此无需额外安装这些包。然而,如果打算扩展功能或遇到依赖问题,则可能需要更新 pip 并确保环境是最新的: ```bash sudo apt-get update && sudo apt-get install python3-pip pip3 install --upgrade pip setuptools wheel ``` #### 编写 Python 发送邮件脚本 下面展示了一个简单的例子,该脚本能够连接到 SMTP 服务器并发送一封纯文本格式的邮件给指定收件人列表中的成员。 ```python import smtplib from email.mime.text import MIMEText from email.header import Header def send_email(subject, body_text, from_addr, to_addrs_list, smtp_server='localhost'): msg = MIMEText(body_text,'plain','utf-8') msg['Subject'] = Header(subject, 'utf-8') try: server = smtplib.SMTP(smtp_server) server.sendmail(from_addr, to_addrs_list, msg.as_string()) print("Successfully sent email") except Exception as e: print(f"Failed to send email with error {e}") finally: server.quit() if __name__ == "__main__": subject = "Test Email Subject" content = "This is a test message." sender = "[email protected]" receivers = ["[email protected]", "[email protected]"] send_email(subject, content, sender, receivers) ``` 此代码片段定义了一个名为 `send_email()` 的函数,接受主题、正文文字、发信地址、接收方邮箱列表以及可选参数 SMTP 服务器地址作为输入参数。当直接运行这个文件时会调用上述方法尝试向两个假定存在的电子信箱发出测试性质的信息。 请注意,在实际部署前还需要设置好合适的 SMTP 服务端信息(比如 Gmail 或其他第三方服务商提供的 API 接口),并且考虑安全性因素如 SSL/TLS 加密通信等措施来保护数据传输过程的安全性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

或许,这就是梦想吧!

如果对你有用,欢迎打赏。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值