2016-11-12 9 views
1

私は私のWordPressのサイトデータベースからユーザーの電子メールアドレスを取得するためのPHPスクリプトを持っています。続く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"]); 
} 

として PHPスクリプトは、出力は私がPHPを読んで、Pythonのスニペットは、この

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

fromaddr = "[email protected]" 
toaddr = status 
server.sendmail(fromaddr, toaddr) 
に見えるように urllib2を使用して、私のpythonのコードでは、この

[email protected]

[email protected]

のようになります。

この場合、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: 'リスト'オブジェクトに属性 'lstrip'がありません.'私は私のmail_listが' ['[email protected] '、' [email protected] '、' '] '。私のPHP printfの改行のために空の引用があります。あなたはこのエラーについて考えていますか? –

+0

こんにちは、私は私のスクリプトに 'email.MTMEText'をインポートしたので、どのような問題が起きているのか把握しました。そしてそれは単一の文字列でなければなりません。その部分では 'msg '' To '] ='、 '。join(mail_list)'のようにコード化しなければならない。' splitlines() 'メソッドは魅力のように機能する –

+0

ありがとう、幸運。 – JazZ

関連する問題