Python:从自定义域发送电子邮件

时间:2019-09-13 00:36:20

标签: python email smtp

我正在尝试从Python中的自定义域发送电子邮件。我已经弄清楚了如何使用smtplib [example code]从其他域(例如gmail.com)发送电子邮件。现在,我想弄清楚如何从自定义域(例如catsareonwheels.com)发送电子邮件。

我认为我可以使用smtpd从服务器发送电子邮件,但是该库似乎仅充当Mail Transfer Agent的代理。据我所知,有 用纯Python编写的MTA [例如Slimta],但我找不到任何示例来实际演示如何使用Python从自定义域发送电子邮件。

如果有人能帮助我找到可以帮助我确定如何最好地实现这一目标的文献,我将非常感激。

2 个答案:

答案 0 :(得分:0)

“自定义域”到底是什么意思? 如果您有托管女巫为您提供电子邮件服务,那么您也可以使用smtplib。

可以说我买了一台主机和一个域名use-smtplib.com。我已经在管理面板中创建了一个电子邮件帐户myname@use-smtplib.com。 然后配置应如下所示:

with smtplib.SMTP_SSL('mail.use-smtplib.com', '465') as smtp:

        smtp.login('myname@use-smtplib.com', 'my_strong_password')

        subject = "Message from python"
        msg = "Hello from python"

        smtp.sendmail('myname@use-smtplib.com', 'recipient@gmail.com', msg)

确切的配置可能会有所不同,具体取决于您的电子邮件提供商。以mail.domain.com和smtp.domain.com开头的域很常见。

答案 1 :(得分:0)

要从自定义域发送电子邮件,您需要执行以下操作:

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplib

msg = MIMEMultipart()
msg["From"] = "<your_mail_account>"
msg["To"] = "<destiny_account>"
body_text = "HOLA MUNDO :)"
body_part = MIMEText(body_text, 'plain')
msg.attach(body_part)
with smtplib.SMTP(host="smtp.<CUSTOM_DOMAIN>.com", port=587) as smtp_obj:  # ENVIAR DESDE UN DOMINIO PERSONALIZADO.
    smtp_obj.ehlo()
    smtp_obj.starttls()
    smtp_obj.ehlo()
    smtp_obj.login("<your_mail_account>", "<your_password>")
    smtp_obj.sendmail(msg['From'], [msg['To'],], msg.as_string())

print("¡Datos enviados con éxito!")

就是这样:)希望你喜欢它!

相关问题