1

Hi i am fetching email to list from database which is like below

'XXXXXXXX@gmail.com,XXXXXXXX@gmail.com,XXXXXXXX@gmail.com'

i want to separate these mail like

 'XXXXXXXX@gmail.com','XXXXXXXX@gmail.com','XXXXXXXX@gmail.com'

in python function so can pass it in msg["To"] field.

Rahul Gour
  • 487
  • 2
  • 7
  • 21

3 Answers3

0

You can use split function with delimeter as ,:

email_string = 'XXXXXXXX@gmail.com,XXXXXXXX@gmail.com,XXXXXXXX@gmail.com'
email_list = email_string.split(",")  
Kapil
  • 459
  • 3
  • 14
0

Use str.split like so

'XXXXXXXX@gmail.com,XXXXXXXX@gmail.com,XXXXXXXX@gmail.com'.split(',')

outputs:

 ['XXXXXXXX@gmail.com', 'XXXXXXXX@gmail.com', 'XXXXXXXX@gmail.com']
FHTMitchell
  • 11,793
  • 2
  • 35
  • 47
0

The msg["To"] parameter normally takes addresses separated by comma and a space so the following should be what you need:

email_string = 'XXXXXXXX@gmail.com,XXXXXXXX@gmail.com,XXXXXXXX@gmail.com'
msg["To"] = ', '.join(email_string.split(',')

This would pass the following single string:

XXXXXXXX@gmail.com, XXXXXXXX@gmail.com, XXXXXXXX@gmail.com

or alternatively, you could use a replace to add a space:

msg["To"] = email_string.replace(',', ', ')

If you want your string to have quotes around each email address:

email_string = "'{}'".format("','".join(email_string.split(',')))

Giving you a string looking like:

'XXXXXXXX@gmail.com','XXXXXXXX@gmail.com','XXXXXXXX@gmail.com'
Martin Evans
  • 45,791
  • 17
  • 81
  • 97