【问题标题】:Python Email Spammer only sending to one emailPython 电子邮件垃圾邮件发送者仅发送到一封电子邮件
【发布时间】:2020-07-22 18:44:35
【问题描述】:

我的代码:

print '    '
sender =  raw_input('Attacker Email:   ') 
print '    '

subjcet = raw_input('Subject:    ')
print '    '
password = raw_input('Password:   ') 
print '    '
recipients = raw_input ('Emails,  Multiple with "," :  ')
print '    '
msg = raw_input('Message:  ')

print '    ' +bcolors.OKBLUE



s = smtplib.SMTP(host='smtp.gmail.com', port=587)

s.ehlo()
s.starttls()
s.ehlo()
s.login(sender, password)


s.sendmail(sender, recipients, msg)
  


print "Email sent to: " + recipients

我希望它向recipients = raw_input中给出的所有电子邮件发送一条消息

但它只是将消息发送到第一封电子邮件。 任何帮助都会很棒

谢谢。

【问题讨论】:

  • 如果您只是学习基础知识,您可能应该忽略 Python 2,而将时间花在当前推荐和支持的语言版本上,即 Python 3。
  • 是的,我同意。您还应该使用 python2 标签。
  • 好的,我现在将我的脚本更新为 python3 (:

标签: python email


【解决方案1】:

Recipients 当前是一个字符串:"E1, E2, E3"

你需要它是一个列表:["E1", "E2", "E3"]

试试这个:

recipients = recipients.split(", ")

【讨论】:

  • 谢谢。它确实有效,但我得到了这个:TypeError: cannot concatenate 'str' and 'list' objects
  • 你在哪一行得到这个错误?你能提供完整的回溯输出吗?另外,“它确实有效”是指它成功发送了电子邮件吗?
  • 是的,我的意思是它发送电子邮件。错误:文件“emailspammer1.py”,第 128 行,在 中打印“电子邮件发送到:”+ 收件人类型错误:无法连接 'str' 和 'list' 对象
  • 没关系,我明白了,谢谢!!我刚刚做了 str(recipients)
  • 哦,所以程序发送后出错了,但是当您尝试打印“发送成功消息”时。是的,因为收件人是一个列表(这是正确发送电子邮件的唯一方法),您不能加入列表和字符串。您的方法在技术上有效(使用 str(recipients),但更好的方法是遍历列表中的元素并逐个打印出来。
猜你喜欢
  • 2013-10-17
  • 2020-11-11
  • 2012-05-27
  • 1970-01-01
  • 2017-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-12
相关资源
最近更新 更多