最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3實現(xiàn)SMTP發(fā)送郵件的實戰(zhàn)指南

 更新時間:2025年10月27日 09:46:27   作者:xcLeigh  
,本文詳細介紹 Python3 借助smtplib和email庫實現(xiàn) SMTP 郵件發(fā)送的方法,從基礎(chǔ)到實戰(zhàn)覆蓋多場景,先講解 SMTP 協(xié)議定義及兩核心庫功能,再說明創(chuàng)建 SMTP 對象和使用sendmail方法的核心語法與參數(shù),需要的朋友可以參考下

在日常開發(fā)和工作中,我們經(jīng)常需要實現(xiàn)自動發(fā)送郵件的功能,比如監(jiān)控告警通知、數(shù)據(jù)報表推送、用戶注冊驗證等。Python 中的 smtplib 庫和 email 庫為我們提供了便捷的 SMTP 郵件發(fā)送解決方案,本文將從基礎(chǔ)概念出發(fā),逐步講解如何用 Python3 實現(xiàn)純文本郵件、HTML 格式郵件、帶附件郵件以及嵌入圖片的郵件發(fā)送,最后還會介紹如何使用第三方 SMTP 服務(wù)(以 QQ 郵箱為例)實現(xiàn)跨環(huán)境郵件發(fā)送,適合零基礎(chǔ)開發(fā)者學習和實戰(zhàn)。

一、SMTP 協(xié)議與 Python 相關(guān)庫介紹

在開始代碼實戰(zhàn)前,我們先了解兩個核心知識點:SMTP 協(xié)議和 Python 中用于發(fā)送郵件的庫。

1.1 什么是 SMTP 協(xié)議?

SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協(xié)議)是一組用于將郵件從源地址傳輸?shù)侥康牡刂返囊?guī)則,它定義了郵件服務(wù)器之間如何通信,以及如何控制郵件的中轉(zhuǎn)方式。我們?nèi)粘0l(fā)送郵件,本質(zhì)上就是通過 SMTP 協(xié)議與郵件服務(wù)器交互,完成郵件的投遞。

1.2 Python 核心庫說明

Python 內(nèi)置了兩個關(guān)鍵庫,無需額外安裝即可使用:

  • smtplib:對 SMTP 協(xié)議進行封裝,提供了建立 SMTP 連接、登錄服務(wù)器、發(fā)送郵件等核心功能。
  • email:用于構(gòu)造郵件內(nèi)容,包括郵件頭(發(fā)件人、收件人、主題)、郵件正文(純文本/HTML)、附件、圖片等,解決了郵件格式符合 SMTP 協(xié)議規(guī)范的問題(避免因格式錯誤導致郵件發(fā)送失敗或亂碼)。

二、Python 發(fā)送郵件的核心語法

在實現(xiàn)具體功能前,我們先掌握 smtplib 庫的核心對象和方法,這是后續(xù)所有實戰(zhàn)的基礎(chǔ)。

2.1 創(chuàng)建 SMTP 對象

要發(fā)送郵件,首先需要創(chuàng)建 smtplib.SMTP 對象,用于與 SMTP 服務(wù)器建立連接。其語法如下:

import smtplib
# 語法格式
smtpObj = smtplib.SMTP([host [, port [, local_hostname]]])

參數(shù)說明:

  • host(可選):SMTP 服務(wù)器主機地址,可填 IP 或域名(如 QQ 郵箱的 smtp.qq.com)。
  • port(可選):SMTP 服務(wù)器端口號,默認端口為 25(非加密),SSL 加密端口通常為 465 或 587(如 QQ 郵箱用 465)。
  • local_hostname(可選):若 SMTP 服務(wù)器在本機,可指定為 localhost。

2.2 發(fā)送郵件的 sendmail 方法

創(chuàng)建 SMTP 對象后,通過 sendmail 方法發(fā)送郵件,語法如下:

smtpObj.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])

參數(shù)說明:

  • from_addr:發(fā)件人郵箱地址(如 xxx@qq.com)。
  • to_addrs:收件人郵箱地址列表(即使只有一個收件人,也需用列表格式,如 ['yyy@163.com'])。
  • msg:郵件內(nèi)容字符串,必須符合 SMTP 協(xié)議格式(需包含 From、ToSubject 等頭部信息,以及正文/附件)。

三、實戰(zhàn):四種常見郵件類型的發(fā)送實現(xiàn)

接下來,我們通過四個實戰(zhàn)案例,逐步掌握不同類型郵件的發(fā)送方法,所有代碼均可直接修改后運行。

3.1 案例 1:發(fā)送純文本郵件

純文本郵件是最基礎(chǔ)的類型,僅包含文字內(nèi)容,適合簡單通知。

代碼實現(xiàn)

#!/usr/bin/python3
import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 1. 配置郵件基本信息
sender = 'xcSharp@126.com'  # 發(fā)件人郵箱
receivers = ['xcLeigh@126.com']  # 收件人郵箱列表(可多個)

# 2. 構(gòu)造郵件正文(三個參數(shù):文本內(nèi)容、格式(plain=純文本)、編碼)
message = MIMEText('Python 郵件發(fā)送測試...這是純文本內(nèi)容', 'plain', 'utf-8')

# 3. 設(shè)置郵件頭部信息(發(fā)件人昵稱、收件人昵稱、郵件主題)
message['From'] = Header("xcSharp", 'utf-8')  # 發(fā)件人顯示的昵稱
message['To'] = Header("xcLeigh", 'utf-8')    # 收件人顯示的昵稱
message['Subject'] = Header('Python SMTP 純文本郵件測試', 'utf-8')  # 郵件主題

# 4. 連接 SMTP 服務(wù)器并發(fā)送郵件
try:
    # 若使用本機 SMTP 服務(wù)器(如已安裝 sendmail),直接連接 localhost
    smtpObj = smtplib.SMTP('localhost')
    # 發(fā)送郵件(發(fā)件人、收件人、郵件內(nèi)容字符串)
    smtpObj.sendmail(sender, receivers, message.as_string())
    print("純文本郵件發(fā)送成功")
except smtplib.SMTPException:
    print("Error: 無法發(fā)送純文本郵件")

運行說明

  • 若本機已安裝 sendmail 服務(wù)(如 Linux 系統(tǒng)),直接運行代碼即可發(fā)送成功。
  • 若本機無 sendmail,可跳過此案例,直接學習 3.5 節(jié)(第三方 SMTP 服務(wù))。

3.2 案例 2:發(fā)送 HTML 格式郵件

HTML 格式郵件支持富文本(如鏈接、表格、樣式),適合展示復雜內(nèi)容(如數(shù)據(jù)報表、活動通知)。其核心是將 MIMEText 的 _subtype 參數(shù)設(shè)為 html。

代碼實現(xiàn)

#!/usr/bin/python3
import smtplib
from email.mime.text import MIMEText
from email.header import Header

sender = 'from@runoob.com'
receivers = ['429240967@qq.com']

# 1. 構(gòu)造 HTML 格式的郵件正文
mail_msg = """
<p>Python 郵件發(fā)送測試...</p>
<p>這是 <b>HTML 格式</b> 的郵件,支持富文本:</p>
<p>1. 點擊訪問 <a  rel="external nofollow" >菜鳥教程</a></p>
<p>2. 以下是表格示例:</p>
<table border="1">
  <tr><th>姓名</th><th>年齡</th></tr>
  <tr><td>張三</td><td>25</td></tr>
  <tr><td>李四</td><td>30</td></tr>
</table>
"""

# 2. 構(gòu)造郵件(subtype 設(shè)為 html,表明是 HTML 格式)
message = MIMEText(mail_msg, 'html', 'utf-8')
message['From'] = Header("菜鳥教程", 'utf-8')
message['To'] = Header("測試用戶", 'utf-8')
message['Subject'] = Header('Python SMTP HTML 郵件測試', 'utf-8')

# 3. 發(fā)送郵件
try:
    smtpObj = smtplib.SMTP('localhost')
    smtpObj.sendmail(sender, receivers, message.as_string())
    print("HTML 郵件發(fā)送成功")
except smtplib.SMTPException:
    print("Error: 無法發(fā)送 HTML 郵件")

效果說明

發(fā)送成功后,收件人郵箱中會顯示帶鏈接、表格的富文本內(nèi)容,而非純文字。

3.3 案例 3:發(fā)送帶附件的郵件

工作中常需發(fā)送帶附件的郵件(如日志文件、Excel 報表),核心是使用 MIMEMultipart 類組合“正文 + 附件”。

代碼實現(xiàn)

#!/usr/bin/python3
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header

sender = 'from@runoob.com'
receivers = ['429240967@qq.com']

# 1. 創(chuàng)建帶附件的郵件實例(MIMEMultipart 用于組合多部分內(nèi)容)
message = MIMEMultipart()
message['From'] = Header("菜鳥教程", 'utf-8')
message['To'] = Header("測試用戶", 'utf-8')
message['Subject'] = Header('Python SMTP 帶附件郵件測試', 'utf-8')

# 2. 添加郵件正文(純文本或 HTML 均可)
message.attach(MIMEText('這是帶附件的郵件正文...', 'plain', 'utf-8'))

# 3. 構(gòu)造附件 1(傳送當前目錄下的 test.txt 文件)
# 讀取文件內(nèi)容,用 base64 編碼(確保二進制文件傳輸不損壞)
att1 = MIMEText(open('test.txt', 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'  # 聲明附件類型
# 設(shè)置附件顯示名稱(filename 為郵件中顯示的文件名,可自定義)
att1["Content-Disposition"] = 'attachment; filename="test.txt"'
message.attach(att1)  # 將附件添加到郵件

# 4. 構(gòu)造附件 2(傳送 runoob.txt 文件,方法同上)
att2 = MIMEText(open('runoob.txt', 'rb').read(), 'base64', 'utf-8')
att2["Content-Type"] = 'application/octet-stream'
att2["Content-Disposition"] = 'attachment; filename="runoob.txt"'
message.attach(att2)

# 5. 發(fā)送郵件
try:
    smtpObj = smtplib.SMTP('localhost')
    smtpObj.sendmail(sender, receivers, message.as_string())
    print("帶附件郵件發(fā)送成功")
except smtplib.SMTPException:
    print("Error: 無法發(fā)送帶附件郵件")

注意事項

  • 確保附件文件(如 test.txt)在代碼運行的當前目錄下,否則需指定完整路徑(如 C:/files/test.txt)。
  • 附件支持任意格式(如 xlsxpdf、zip),只需修改文件名和路徑即可。

3.4 案例 4:HTML 正文中嵌入圖片

若想在 HTML 郵件中直接顯示圖片(而非作為附件),需將圖片以“內(nèi)嵌資源”的方式添加,核心是通過 Content-ID 關(guān)聯(lián) HTML 中的圖片引用。

代碼實現(xiàn)

#!/usr/bin/python3
import smtplib
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header

sender = 'from@runoob.com'
receivers = ['429240967@qq.com']

# 1. 創(chuàng)建關(guān)聯(lián)型郵件實例(related 表示內(nèi)容間有關(guān)聯(lián),如圖片引用)
msgRoot = MIMEMultipart('related')
msgRoot['From'] = Header("菜鳥教程", 'utf-8')
msgRoot['To'] = Header("測試用戶", 'utf-8')
msgRoot['Subject'] = Header('Python SMTP 內(nèi)嵌圖片郵件測試', 'utf-8')

# 2. 創(chuàng)建備選內(nèi)容容器(兼容不支持 HTML 的郵件客戶端)
msgAlternative = MIMEMultipart('alternative')
msgRoot.attach(msgAlternative)

# 3. 構(gòu)造 HTML 正文(通過 cid:image1 引用圖片,與后續(xù)圖片的 Content-ID 對應(yīng))
mail_msg = """
<p>Python 郵件發(fā)送測試...</p>
<p>這是內(nèi)嵌圖片的 HTML 郵件:</p>
<p><img src="cid:image1"></p>  <!-- 引用圖片 ID 為 image1 -->
"""
msgAlternative.attach(MIMEText(mail_msg, 'html', 'utf-8'))

# 4. 讀取圖片并添加為內(nèi)嵌資源
fp = open('test.png', 'rb')  # 讀取當前目錄下的 test.png 圖片
msgImage = MIMEImage(fp.read())
fp.close()

# 5. 設(shè)置圖片的 Content-ID(需與 HTML 中的 cid 一致)
msgImage.add_header('Content-ID', '<image1>')
msgRoot.attach(msgImage)

# 6. 發(fā)送郵件
try:
    smtpObj = smtplib.SMTP('localhost')
    smtpObj.sendmail(sender, receivers, msgRoot.as_string())
    print("內(nèi)嵌圖片郵件發(fā)送成功")
except smtplib.SMTPException:
    print("Error: 無法發(fā)送內(nèi)嵌圖片郵件")

效果說明

發(fā)送成功后,圖片會直接顯示在郵件正文中,而非作為附件下載(部分郵箱可能需要將郵件從垃圾箱移到收件箱才能正常顯示圖片)。

3.5 案例 5:使用第三方 SMTP 服務(wù)(QQ 郵箱為例)

前面的案例依賴本機 sendmail 服務(wù),實際開發(fā)中更常用 第三方 SMTP 服務(wù)(如 QQ 郵箱、網(wǎng)易郵箱、企業(yè)郵箱),支持跨環(huán)境發(fā)送(Windows、Mac、Linux 通用)。

以 QQ 郵箱為例,需先完成兩步準備工作:

準備工作:獲取 QQ 郵箱授權(quán)碼

QQ 郵箱不允許直接使用登錄密碼作為 SMTP 密碼,需生成“授權(quán)碼”(用于第三方應(yīng)用登錄):

  1. 登錄 QQ 郵箱,進入 設(shè)置 → 賬戶。
  2. 找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV 服務(wù)”,開啟“IMAP/SMTP 服務(wù)”。
  3. 按照提示發(fā)送短信驗證,驗證后會生成 16 位授權(quán)碼,保存該授權(quán)碼(后續(xù)代碼中用)。

QQ 郵箱 SMTP 配置信息

  • SMTP 服務(wù)器地址:smtp.qq.com
  • SSL 加密端口:465(推薦使用 SSL 加密,更安全)

代碼實現(xiàn)(QQ 郵箱發(fā)送純文本郵件)

#!/usr/bin/python3
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

# 1. 配置 QQ 郵箱信息(需替換為自己的信息)
my_sender = '123456@qq.com'    # 發(fā)件人 QQ 郵箱賬號
my_pass = 'abcdefghijklmnop'   # 發(fā)件人郵箱授權(quán)碼(不是登錄密碼?。?
my_user = '654321@qq.com'      # 收件人郵箱賬號(可發(fā)給自己測試)

def send_qq_mail():
    ret = True  # 標記郵件是否發(fā)送成功
    try:
        # 2. 構(gòu)造純文本郵件正文
        msg = MIMEText('這是用 QQ 郵箱 SMTP 發(fā)送的測試郵件', 'plain', 'utf-8')
        
        # 3. 設(shè)置郵件頭部(formataddr 避免中文亂碼)
        # 格式:(昵稱, 郵箱賬號)
        msg['From'] = formataddr(["我的 QQ 郵箱", my_sender])
        msg['To'] = formataddr(["測試收件人", my_user])
        msg['Subject'] = "Python SMTP QQ 郵箱測試"  # 郵件主題

        # 4. 連接 QQ 郵箱 SMTP 服務(wù)器(SSL 加密)
        # 注意:使用 SMTP_SSL 而非 SMTP,端口為 465
        server = smtplib.SMTP_SSL("smtp.qq.com", 465)
        server.login(my_sender, my_pass)  # 登錄 SMTP 服務(wù)器
        
        # 5. 發(fā)送郵件(收件人列表需用列表格式)
        server.sendmail(my_sender, [my_user,], msg.as_string())
        
        # 6. 關(guān)閉連接
        server.quit()
    except Exception as e:
        print(f"發(fā)送失敗原因:{e}")
        ret = False
    return ret

# 調(diào)用函數(shù)發(fā)送郵件
ret = send_qq_mail()
if ret:
    print("QQ 郵箱郵件發(fā)送成功")
else:
    print("QQ 郵箱郵件發(fā)送失敗")

擴展說明

  • 若需發(fā)送 HTML 郵件、帶附件郵件,只需將 3.2/3.3/3.4 節(jié) 中的“郵件構(gòu)造邏輯”替換到本案例中即可。
  • 其他郵箱(如網(wǎng)易 163)的配置類似:網(wǎng)易 SMTP 服務(wù)器為 smtp.163.com,端口 465,同樣需要開啟 SMTP 服務(wù)并獲取授權(quán)碼。

四、常見問題與解決方案

在實戰(zhàn)中可能遇到郵件發(fā)送失敗的問題,以下是高頻問題及解決方法:

問題現(xiàn)象可能原因解決方案
報錯 smtplib.SMTPAuthenticationError1. 授權(quán)碼錯誤
2. 未開啟 SMTP 服務(wù)
1. 重新生成 QQ/網(wǎng)易郵箱授權(quán)碼(注意區(qū)分登錄密碼與授權(quán)碼)
2. 登錄郵箱進入“設(shè)置-賬戶”,開啟 IMAP/SMTP 服務(wù)
郵件發(fā)送成功但收件箱未收到1. 郵件被判定為垃圾郵件
2. 收件人郵箱地址錯誤
1. 檢查垃圾箱,將發(fā)件人添加到聯(lián)系人白名單
2. 核對 receivers 列表中的郵箱地址,確保無拼寫錯誤
報錯 smtplib.SMTPConnectError1. SMTP 服務(wù)器地址或端口錯誤
2. 本地網(wǎng)絡(luò)防火墻攔截端口
1. 確認第三方郵箱 SMTP 地址(如 QQ 是 smtp.qq.com)和端口(465 用于 SSL)
2. 臨時關(guān)閉防火墻,或在防火墻設(shè)置中允許 Python 程序訪問網(wǎng)絡(luò)
HTML 郵件亂碼或圖片不顯示1. 編碼未設(shè)置為 utf-8
2. HTML 中圖片 cid 與 Content-ID 不匹配
1. 構(gòu)造 MIMEText 時確保編碼參數(shù)為 utf-8
2. 檢查圖片 Content-ID 與 HTML 中 src="cid:xxx" 的值完全一致(包括尖括號,如 <image1>

五、總結(jié)與擴展學習

通過本文的學習,我們已經(jīng)掌握了 Python3 發(fā)送各類 SMTP 郵件的核心方法,從基礎(chǔ)的純文本郵件到復雜的帶附件、內(nèi)嵌圖片郵件,再到跨環(huán)境的第三方 SMTP 服務(wù)調(diào)用,基本能覆蓋日常開發(fā)中自動發(fā)送郵件的需求,如服務(wù)器監(jiān)控告警、定時數(shù)據(jù)報表推送、用戶注冊驗證碼發(fā)送等場景。

若需進一步拓展功能,可參考以下方向:

  1. 定時發(fā)送郵件:結(jié)合 schedule 庫或 APScheduler 庫,實現(xiàn)每天/每周定時發(fā)送郵件(如周報自動推送)。
  2. 批量發(fā)送個性化郵件:讀取 Excel/CSV 中的收件人信息和個性化內(nèi)容(如姓名、訂單號),循環(huán)生成并發(fā)送郵件。
  3. 添加郵件抄送/密送:在 sendmail 方法的 to_addrs 列表中添加抄送(CC)或密送(BCC)地址,同時在郵件頭部通過 message['Cc']/message['Bcc'] 設(shè)置顯示名稱。
  4. 更復雜的郵件格式:使用 email.mime.application 類發(fā)送 PDF、Excel 等特殊格式附件,或通過 email.mime.multipart 組合純文本+HTML 雙版本正文(兼容不同郵件客戶端)。

以上就是Python3實現(xiàn)SMTP發(fā)送郵件的實戰(zhàn)指南的詳細內(nèi)容,更多關(guān)于Python3 SMTP發(fā)送郵件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python命令行解析工具argparse模塊

    Python命令行解析工具argparse模塊

    這篇文章主要介紹了Python命令行解析工具argparse模塊,argparse模塊是一個python標準庫,它主要用于對用戶從客戶端輸入的命令進行解析,這使得編寫用戶友好的命令行接口變得非常容易,需要的朋友可以參考下
    2023-05-05
  • linux mint中搜狗輸入法導致pycharm卡死的問題

    linux mint中搜狗輸入法導致pycharm卡死的問題

    這篇文章主要介紹了linux mint中搜狗輸入法導致pycharm卡死的問題,這篇文章給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • Python爬取肯德基官網(wǎng)ajax的post請求實現(xiàn)過程

    Python爬取肯德基官網(wǎng)ajax的post請求實現(xiàn)過程

    這篇文章主要介紹了Python爬取肯德基官網(wǎng)ajax的post請求實現(xiàn)過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家學有所得,多多進步
    2021-10-10
  • 使用C++擴展Python的功能詳解

    使用C++擴展Python的功能詳解

    這篇文章主要介紹了使用C++擴展Python的功能詳解,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python pandas修改列屬性的方法詳解

    python pandas修改列屬性的方法詳解

    今天小編就為大家分享一篇python pandas修改列屬性的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python機器學習之KNN近鄰算法

    Python機器學習之KNN近鄰算法

    KNN可以說是最簡單的分類算法之一,同時,它也是最常用的分類算法,文中非常詳細的介紹了該算法,對正在學習python的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • Python元組Tuple常用函數(shù)詳解

    Python元組Tuple常用函數(shù)詳解

    Python元組Tuple使用小括號()包裹,元素之間使用逗號,間隔,元組與列表相似,但元組的元素不可變,本文就給大家詳細介紹一下元組的常用函數(shù)以及基本操作,感興趣的朋友可以參考閱讀下
    2023-07-07
  • Python環(huán)境配置實現(xiàn)pip加速過程解析

    Python環(huán)境配置實現(xiàn)pip加速過程解析

    這篇文章主要介紹了Python環(huán)境配置實現(xiàn)pip加速過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • python并發(fā)編程多進程 模擬搶票實現(xiàn)過程

    python并發(fā)編程多進程 模擬搶票實現(xiàn)過程

    這篇文章主要介紹了python并發(fā)編程多進程 模擬搶票實現(xiàn)過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Python基于execjs運行js過程解析

    Python基于execjs運行js過程解析

    這篇文章主要介紹了Python基于execjs運行js過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11

最新評論

汕尾市| 鹤山市| 荣昌县| 年辖:市辖区| 鄯善县| 昌吉市| 神木县| 墨竹工卡县| 花垣县| 噶尔县| 永康市| 涡阳县| 河北区| 米易县| 静海县| 沁源县| 芜湖县| 河间市| 金寨县| 贵港市| 汶川县| 玛曲县| 丰宁| 东山县| 壤塘县| 广元市| 丰顺县| 高密市| 新郑市| 金坛市| 巴马| 儋州市| 锡林郭勒盟| 璧山县| 沈阳市| 千阳县| 改则县| 达拉特旗| 洛浦县| 崇仁县| 方山县|