python发送邮件554DT:SPM已解决

  说明:本例使用163邮箱

一、报错信息

  使用SMTP发送邮件遇到以下报错:

  554, b'DT:SPM 163 smtp10,DsCowACXeOtmjRRdsY8aCw--.21947S2 1561628007,please see http://mail.163.com/help/help_spam_16.htm?ip=36.110.94.251&hostid=smtp10&time=1561628007'

二、排查原因

  1.检查163邮箱是否设置授权码,授权码对不对。不对会报错:535, b'Error: authentication failed'

  2.检查代码邮件格式规范

    下面贴出菜鸟教程部分代码使用header。看已发送邮件的确是显示了发件人别名(显示代发),收件人看到的发件人也是自己起的别名。如下图:

# -*- coding: utf-8 -*-
# Nola

import smtplib
from email.mime.text import MIMEText
from email.header import Header
import time

mail_server = "smtp.163.com"
mail_port = 25
sender = "xxxxx@163.com"
sender_password = "xxxxxx"  # 授权码
receivers = "wewewwe@163.com"


message = MIMEText('Python邮件发送测试...', 'plain', 'utf-8')
# message['From'] = sender
# message['To'] = receivers
message['From'] = Header("菜鸟教程", 'utf-8')
message['To'] = Header("测试", 'utf-8')

send_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
subject = '邮件测试' + send_time
message['Subject'] = subject


try:
    smtp_obj = smtplib.SMTP()
    smtp_obj.connect(mail_server, mail_port)
    smtp_obj.login(sender, sender_password)
    smtp_obj.sendmail(sender, [receivers], message.as_string())
    print('success!')
except smtplib.SMTPException as e:
    print('failure!')
    print(e)

 

  重点是:收到几封邮件后,收不到了,换收件人也收不到,猜测是163禁发了。点上图中帮助可以看到下图,所以善意的伪装也会产生误会。

三、解决方法

  From和To使用发件人和收件人真实邮箱地址,发送即可成功。

  

# -*- coding: utf-8 -*-
# Nola

import smtplib
from email.mime.text import MIMEText
import time

mail_server = "smtp.163.com"
mail_port = 25
sender = "xxxxx@163.com"
sender_password = "xxxxxx"  # 授权码
receivers = "wewewwe@163.com"


message = MIMEText('Python邮件发送测试...', 'plain', 'utf-8')
message['From'] = sender
message['To'] = receivers

send_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
subject = '邮件测试' + send_time
message['Subject'] = subject


try:
    smtp_obj = smtplib.SMTP()
    smtp_obj.connect(mail_server, mail_port)
    smtp_obj.login(sender, sender_password)
    smtp_obj.sendmail(sender, [receivers], message.as_string())
    print('success!')
except smtplib.SMTPException as e:
    print('failure!')
    print(e)

 

 

 

  

  

转载于:https://www.cnblogs.com/NolaLi/p/11098670.html

DWA算法是一种用于移动机器人路径规划的算法。在DWA算法中,机器人通过选择适当的速度进行采样,并根据采样得到的速度计算机器人在未来一段时间内的轨迹。然后,根据轨迹评估每个采样点的代价,并选择最佳的速度,以实现机器人在给定环境下的移动目标。 在Python中,可以使用DWA算法来实现机器人的路径规划。有一份基于DWA算法的Python实现代码可以参考。这份代码是根据DWA公式编写的,代码中的每一步都有注释,可以帮助理解算法的实现过程。需要注意的是,这份代码中没有使用权重系数和归一化,这是因为作者在模拟一个小区域时计算量较小,所以没有使用到。但在实际应用中,应按照公式进行计算。 在DWA算法中,速度采样是一个重要的步骤。速度采样意味着在一定的动态范围内选择速度。在机器人路径规划中,速度是由线速度和角速度组成的。线速度范围和角速度范围会被设定,然后按照循环的方式进行匹配,以得到一个速度。线速度一开始会设置为Vmin-Vmax,然后根据实际情况逐渐改变,根据采样间隔时间(dt)和线速度加速度(va)来计算。同样的方法也适用于角速度。通过上述步骤,我们可以得到线速度和角速度的两个范围,然后取两个范围的交集,即两个范围的最小值的最大值和最大值的最小值,形成一个新的范围。 总之,DWA算法是一种用于移动机器人路径规划的算法,可以使用Python来实现。在实现过程中,需要进行速度采样,并根据采样得到的速度计算机器人的轨迹。这里提供的参考文献和可以帮助进一步了解和实现DWA算法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SLAM学习:DWA算法原理和编程实现(PYTHON)](https://blog.csdn.net/lovely_yoshino/article/details/116847256)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SLAM学习:DWA算法原理和Python编程实现](https://blog.csdn.net/qq_43711697/article/details/106880637)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值