2016-11-12 2 views
1

У меня есть php-скрипт для извлечения пользовательского адреса электронной почты из моей базы данных сайта wordpress. РНР скрипт, как следоватьКак отправить несколько приемников с помощью python?

$sql = "SELECT user_email FROM wp_users"; 
$addr = mysqli_query($conn,$sql); 

while ($row = mysqli_fetch_assoc($addr)){ 
     printf ("%s\n", $row["user_email"]); 
} 

Вывод будет выглядеть следующим образом

[email protected]

[email protected]

В моем питона коде я использую urllib2 читать PHP и питон сниппет выглядеть следующим образом

response = urllib2.urlopen('http://192.168.0.168/useremail.php') 
status = response.read() 

fromaddr = "[email protected]" 
toaddr = status 
server.sendmail(fromaddr, toaddr) 

В этом случае адрес электронной почты всегда отправляется на первый адрес электронной почты, несмотря на то, что из php-скрипта извлекается несколько адресов электронной почты. Пожалуйста, помогите мне решить эту проблему. Извините, что я новичок в программировании.

+2

Зачем смешивать python и PHP здесь? используйте тот или иной – e4c5

+0

@ e4c5 У меня есть скрипт, запущенный на python, при запуске события он отправляет электронное письмо для уведомления клиента. –

ответ

1

sendmail() необходим список почтовых адресов. Таким образом, вам нужно будет создать этот список с ответом urllib2.

Используйте splitlines(), чтобы вернуть список строк в строке.

т.е.:

import urllib2 

response = urllib2.urlopen('http://192.168.0.168/useremail.php') 
status = response.read() 

mail_list = status.splitlines() # split the response in a list 

print mail_list 
# ['[email protected]', '[email protected]', '[email protected]', '[email protected]'] 

# then send the mails  
fromaddr = "[email protected]" 
server.sendmail(fromaddr, mail_list) 

Надеется, что это помогает.

+0

Привет, я получаю эту ошибку. Объект AttributeError: 'list' не имеет атрибута 'lstrip'.' Я обнаружил, что мой почтовый список - это что-то вроде этого: '['[email protected]', '[email protected]', ' '] '. Существует пустая цитата из-за разрыва строки в моем php printf. У вас есть идея об этой ошибке? –

+0

Привет, я выяснил, в чем проблема, так как я импортировал 'email.MTMEText' в свой скрипт, он настроил заголовок« To: ». И это должна быть одна строка. В этой части я должен кодировать как 'msg ['To'] = ','. Join (mail_list).' Таким образом, ваш метод 'splitlines()' работает как шарм –

+0

Спасибо и удачи. – JazZ