emlclient


Nameemlclient JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/linsuiyuan/email-client
Summary一个简单易用的邮件客户端,支持发送和接收邮件,支持 QQ 邮箱、163邮箱等邮箱
upload_time2024-12-01 02:36:39
maintainerNone
docs_urlNone
authorLinsuiyuan
requires_python>=3.8
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## emailclient

一个简单易用的邮件客户端,支持发送和接收邮件,可以处理附件、设置过滤条件等功能。支持 QQ 邮箱、163邮箱等邮箱

## 支持的邮箱

- QQ邮箱
- 163邮箱(网易邮箱)
- 139邮箱
- iCloud
- Gmail
- Outlook/Hotmail

## 安装

```bash
pip install emlclient
```

## 使用示例

### 1. 读取未读邮件

```python
from emlclient import EmailClient

# 初始化邮件客户端
client = EmailClient(
    username="your_email@example.com",
    password="your_password"
)

# 读取最新的3封未读邮件
emails = client.read_emails(
    criteria="UNSEEN",
    limit=3,
    seen=True  # 设置为已读
)

# 打印邮件内容
for email in emails:
    print(f"发件人: {email['sender']}")
    print(f"主题: {email['subject']}")
    print(f"内容: {email['body']}\n")
```

### 2. 发送带附件的邮件

```python
from emlclient import EmailClient

client = EmailClient(
    username="your_email@example.com",
    password="your_password"
)

# 发送带附件的邮件
result = client.send_email(
    to="recipient@example.com",
    subject="测试邮件",
    content="这是一封测试邮件",
    attachments=["document.pdf", "image.jpg"]
)
```

### 3. 按条件搜索邮件

```python
from emlclient import EmailClient

client = EmailClient(
    username="your_email@example.com",
    password="your_password"
)

# 搜索2024年1月1日之后的包含"发票"的邮件
emails = client.read_emails(
    criteria='SINCE "01-Jan-2024" SUBJECT "发票"',
    limit=5
)

# 打印搜索结果
for email in emails:
    print(f"日期: {email['date']}")
    print(f"主题: {email['subject']}")
```

## 搜索条件说明

支持的搜索条件包括:
- `ALL`: 所有邮件
- `UNSEEN`: 未读邮件
- `SEEN`: 已读邮件
- `FROM "someone@example.com"`: 来自特定发件人的邮件
- `TO "someone@example.com"`: 发送给特定收件人的邮件
- `SUBJECT "test"`: 主题包含特定文字的邮件
- `SINCE "01-Jan-2020"`: 某个日期之后的邮件
- `BEFORE "01-Jan-2020"`: 某个日期之前的邮件
- `LARGER 1000`: 大于1000字节的邮件
- `SMALLER 1000`: 小于1000字节的邮件

多个条件可以组合使用,如: `UNSEEN SUBJECT "test"`

## 注意事项

1. 部分邮箱服务商可能需要特殊配置,请参考各自的文档(比如一些邮箱密码需要使用授权码而不是登录密码)

## License

MIT

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/linsuiyuan/email-client",
    "name": "emlclient",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Linsuiyuan",
    "author_email": "linsuiyuan@icloud.com",
    "download_url": "https://files.pythonhosted.org/packages/f7/af/164876511353baee89ae3a3f31b58e8e0cf47f865526cfc6e26e88f3641b/emlclient-1.0.0.tar.gz",
    "platform": null,
    "description": "## emailclient\n\n\u4e00\u4e2a\u7b80\u5355\u6613\u7528\u7684\u90ae\u4ef6\u5ba2\u6237\u7aef\uff0c\u652f\u6301\u53d1\u9001\u548c\u63a5\u6536\u90ae\u4ef6\uff0c\u53ef\u4ee5\u5904\u7406\u9644\u4ef6\u3001\u8bbe\u7f6e\u8fc7\u6ee4\u6761\u4ef6\u7b49\u529f\u80fd\u3002\u652f\u6301 QQ \u90ae\u7bb1\u3001163\u90ae\u7bb1\u7b49\u90ae\u7bb1\n\n## \u652f\u6301\u7684\u90ae\u7bb1\n\n- QQ\u90ae\u7bb1\n- 163\u90ae\u7bb1(\u7f51\u6613\u90ae\u7bb1)\n- 139\u90ae\u7bb1\n- iCloud\n- Gmail\n- Outlook/Hotmail\n\n## \u5b89\u88c5\n\n```bash\npip install emlclient\n```\n\n## \u4f7f\u7528\u793a\u4f8b\n\n### 1. \u8bfb\u53d6\u672a\u8bfb\u90ae\u4ef6\n\n```python\nfrom emlclient import EmailClient\n\n# \u521d\u59cb\u5316\u90ae\u4ef6\u5ba2\u6237\u7aef\nclient = EmailClient(\n    username=\"your_email@example.com\",\n    password=\"your_password\"\n)\n\n# \u8bfb\u53d6\u6700\u65b0\u76843\u5c01\u672a\u8bfb\u90ae\u4ef6\nemails = client.read_emails(\n    criteria=\"UNSEEN\",\n    limit=3,\n    seen=True  # \u8bbe\u7f6e\u4e3a\u5df2\u8bfb\n)\n\n# \u6253\u5370\u90ae\u4ef6\u5185\u5bb9\nfor email in emails:\n    print(f\"\u53d1\u4ef6\u4eba: {email['sender']}\")\n    print(f\"\u4e3b\u9898: {email['subject']}\")\n    print(f\"\u5185\u5bb9: {email['body']}\\n\")\n```\n\n### 2. \u53d1\u9001\u5e26\u9644\u4ef6\u7684\u90ae\u4ef6\n\n```python\nfrom emlclient import EmailClient\n\nclient = EmailClient(\n    username=\"your_email@example.com\",\n    password=\"your_password\"\n)\n\n# \u53d1\u9001\u5e26\u9644\u4ef6\u7684\u90ae\u4ef6\nresult = client.send_email(\n    to=\"recipient@example.com\",\n    subject=\"\u6d4b\u8bd5\u90ae\u4ef6\",\n    content=\"\u8fd9\u662f\u4e00\u5c01\u6d4b\u8bd5\u90ae\u4ef6\",\n    attachments=[\"document.pdf\", \"image.jpg\"]\n)\n```\n\n### 3. \u6309\u6761\u4ef6\u641c\u7d22\u90ae\u4ef6\n\n```python\nfrom emlclient import EmailClient\n\nclient = EmailClient(\n    username=\"your_email@example.com\",\n    password=\"your_password\"\n)\n\n# \u641c\u7d222024\u5e741\u67081\u65e5\u4e4b\u540e\u7684\u5305\u542b\"\u53d1\u7968\"\u7684\u90ae\u4ef6\nemails = client.read_emails(\n    criteria='SINCE \"01-Jan-2024\" SUBJECT \"\u53d1\u7968\"',\n    limit=5\n)\n\n# \u6253\u5370\u641c\u7d22\u7ed3\u679c\nfor email in emails:\n    print(f\"\u65e5\u671f: {email['date']}\")\n    print(f\"\u4e3b\u9898: {email['subject']}\")\n```\n\n## \u641c\u7d22\u6761\u4ef6\u8bf4\u660e\n\n\u652f\u6301\u7684\u641c\u7d22\u6761\u4ef6\u5305\u62ec\uff1a\n- `ALL`: \u6240\u6709\u90ae\u4ef6\n- `UNSEEN`: \u672a\u8bfb\u90ae\u4ef6\n- `SEEN`: \u5df2\u8bfb\u90ae\u4ef6\n- `FROM \"someone@example.com\"`: \u6765\u81ea\u7279\u5b9a\u53d1\u4ef6\u4eba\u7684\u90ae\u4ef6\n- `TO \"someone@example.com\"`: \u53d1\u9001\u7ed9\u7279\u5b9a\u6536\u4ef6\u4eba\u7684\u90ae\u4ef6\n- `SUBJECT \"test\"`: \u4e3b\u9898\u5305\u542b\u7279\u5b9a\u6587\u5b57\u7684\u90ae\u4ef6\n- `SINCE \"01-Jan-2020\"`: \u67d0\u4e2a\u65e5\u671f\u4e4b\u540e\u7684\u90ae\u4ef6\n- `BEFORE \"01-Jan-2020\"`: \u67d0\u4e2a\u65e5\u671f\u4e4b\u524d\u7684\u90ae\u4ef6\n- `LARGER 1000`: \u5927\u4e8e1000\u5b57\u8282\u7684\u90ae\u4ef6\n- `SMALLER 1000`: \u5c0f\u4e8e1000\u5b57\u8282\u7684\u90ae\u4ef6\n\n\u591a\u4e2a\u6761\u4ef6\u53ef\u4ee5\u7ec4\u5408\u4f7f\u7528\uff0c\u5982: `UNSEEN SUBJECT \"test\"`\n\n## \u6ce8\u610f\u4e8b\u9879\n\n1. \u90e8\u5206\u90ae\u7bb1\u670d\u52a1\u5546\u53ef\u80fd\u9700\u8981\u7279\u6b8a\u914d\u7f6e\uff0c\u8bf7\u53c2\u8003\u5404\u81ea\u7684\u6587\u6863(\u6bd4\u5982\u4e00\u4e9b\u90ae\u7bb1\u5bc6\u7801\u9700\u8981\u4f7f\u7528\u6388\u6743\u7801\u800c\u4e0d\u662f\u767b\u5f55\u5bc6\u7801)\n\n## License\n\nMIT\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "\u4e00\u4e2a\u7b80\u5355\u6613\u7528\u7684\u90ae\u4ef6\u5ba2\u6237\u7aef\uff0c\u652f\u6301\u53d1\u9001\u548c\u63a5\u6536\u90ae\u4ef6\uff0c\u652f\u6301 QQ \u90ae\u7bb1\u3001163\u90ae\u7bb1\u7b49\u90ae\u7bb1",
    "version": "1.0.0",
    "project_urls": {
        "Homepage": "https://github.com/linsuiyuan/email-client"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e31e66a1f07f65d53caaf52eaba566128b874718e3275d3812cd147aadc539fc",
                "md5": "20031d54767510eab45334412efc6cee",
                "sha256": "a733b077dc4b3c4b256e370ae85843ebfe6d85ea303ca6a4cf97731f324a368b"
            },
            "downloads": -1,
            "filename": "emlclient-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "20031d54767510eab45334412efc6cee",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 6017,
            "upload_time": "2024-12-01T02:36:20",
            "upload_time_iso_8601": "2024-12-01T02:36:20.024822Z",
            "url": "https://files.pythonhosted.org/packages/e3/1e/66a1f07f65d53caaf52eaba566128b874718e3275d3812cd147aadc539fc/emlclient-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f7af164876511353baee89ae3a3f31b58e8e0cf47f865526cfc6e26e88f3641b",
                "md5": "dd4bea3bf2bedff833a3978a804e31f5",
                "sha256": "67fb18c3d877535885e76241c99fd0dce554bfd1c26429452a0c4565f101ed96"
            },
            "downloads": -1,
            "filename": "emlclient-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "dd4bea3bf2bedff833a3978a804e31f5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 5149,
            "upload_time": "2024-12-01T02:36:39",
            "upload_time_iso_8601": "2024-12-01T02:36:39.112338Z",
            "url": "https://files.pythonhosted.org/packages/f7/af/164876511353baee89ae3a3f31b58e8e0cf47f865526cfc6e26e88f3641b/emlclient-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-01 02:36:39",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "linsuiyuan",
    "github_project": "email-client",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "emlclient"
}
        
Elapsed time: 0.36672s