我有一个激活邮件发送脚本如下。
#!/usr/bin/python
__author__ = 'Amyth Arora (***@gmail.com)'
import smtplib
import string
import sys
import random
from email.MIMEText import MIMEText
def generate_activation_key(size=64, chars=string.ascii_lowercase + string.digits):
return ''.join(random.choice(chars) for x in range(size))
def generate_activation_url(key):
return 'http://www.example.com/users/activate/' + key
def Activate(name, to_addr):
sender, reciever = 'mymail@gmail.com', to_addr
act_url = generate_activation_url(generate_activation_key())
main_mssg = """
Dear %s,
Thakyou for creating an account with Example.com. You are now just one click away from using your example account. Please click the following link to verify this email address and activate your account.
Please Note, You must complete this step to become a registered member of example. you will only need to visit this url once in order to activate your account.
============================
Activation Link Below:
============================
%s
if you are facing problems activating your account please contact our support team at
support@example.com
Best Regards,
Example Team
""" % (name, act_url)
message = MIMEText(main_mssg)
message['From'] = 'Example <' + sender + '>'
message['To'] = reciever
message['MIME-Version'] = '1.0'
message['Content-type'] = 'text/HTML'
message['Subject'] = 'Activate Your Example Account'
try:
smtpObj = smtplib.SMTP('smtp.gmail.com', 587)
smtpObj.set_debuglevel(1) # Swith On/Off Debug Mode
smtpObj.ehlo()
smtpObj.starttls()
smtpObj.ehlo()
smtpObj.login('mymail@gmail.com', 'mypass')
smtpObj.sendmail(sender, reciever, message.as_string())
smtpObj.close()
return act_url
except:
return None
def main(argv):
if len(argv) != 2:
sys.exit(1)
Activate(argv[0], argv[1])
if __name__ == '__main__':
main(sys.argv[1:])
该脚本工作正常,因为我已经通过这样的命令行尝试过它:
./scriptname 'Reciepent Name' 'reciepent@gmail.com'
但是我想像这样从我的一个应用程序处理程序中调用激活脚本。
import activation
act_key = activation.Activate('Reciepent Name', 'reciepent@gmail.com')
但是当我这样做时,脚本会返回None
。谁能弄清楚如何解决这个问题?