J'ai décidé de publier l'histoire à la radio pour de bon. Il est essentiel de poster beaucoup pour augmenter le nombre d'embauches, et il faut en envoyer beaucoup. Pendant ce temps, je pensais que l'e-mail était ennuyeux. Fondamentalement, le matériel est publié par courrier électronique. Une histoire pour chaque copie. 10 courriels pour envoyer 10 histoires ... J'ai donc décidé de créer quelque chose qui enverrait toutes les nouvelles en même temps.
J'ai utilisé deux feuilles, et les noms de feuille étaient "Index" et "Main". Le contenu est le suivant. -Index: compte l'adresse e-mail et le mot de passe, la destination, l'expéditeur, le nom de la radio, l'adresse, le nom -Principal: sujet, matière, date de création, date de transmission, statut, résultat
Index Main
$ pip install gspread oauth2client
send.py
#Relations d'envoi d'e-mails
from email.mime.text import MIMEText
from email.utils import formatdate
import smtplib
#Relation de coopération API
import gspread
from oauth2client.service_account import ServiceAccountCredentials
import datetime
from pprint import pprint
scope = ["https://spreadsheets.google.com/feeds",'https://www.googleapis.com/auth/spreadsheets',"https://www.googleapis.com/auth/drive.file","https://www.googleapis.com/auth/drive"]
creds = ServiceAccountCredentials.from_json_keyfile_name("creds.json", scope)
client = gspread.authorize(creds)
SPREADSHEET_KEY = '******************************************'
sheet1= client.open_by_key(SPREADSHEET_KEY).worksheet('Index')
sheet2= client.open_by_key(SPREADSHEET_KEY).worksheet('Main')
# Index
_id = sheet1.cell(2,1).value
_pass = sheet1.cell(2,2).value
_from = sheet1.cell(4,1).value
_to = sheet1.cell(4,2).value
_radioName = sheet1.cell(4,3).value
_name = sheet1.cell(6,1).value
_address = sheet1.cell(8,1).value
#Toutes les valeurs sont affectées à une variable appelée data.
data = sheet2.get_all_records()
#Obtenez le nombre de données
last_number = len(data)
# pprint(data)
for row in range(last_number):
#Jugement de transmission
status = data[row]["résultat"]
if status == "Terminé":
continue
#Extraire les informations nécessaires pour envoyer un email
body = data[row]["Neta"]
radioName = "nom de la radio:" + _radioName
msg = MIMEText(body + "\n\n" + radioName + "\n\n" + _address + "\n\n" + _name)
#mise à jour de la feuille
now = datetime.datetime.now()
sheet2.update_cell(row + 2, 5 , now.strftime("%Y/%m/%d %H:%M:%S.%f"))
sheet2.update_cell(row + 2, 6, "envoyé")
sheet2.update_cell(row + 2, 7, "Terminé")
msg['Subject'] = data[row]["matière"]
msg['From'] = _from
msg['To'] = _to
msg['Date'] = formatdate()
# pprint(msg)
smtp = smtplib.SMTP('smtp.gmail.com', 587)
smtp.ehlo()
smtp.starttls()
smtp.ehlo()
smtp.login(_id, _pass)
smtp.send_message(msg)
smtp.close()
Dans la série Python2, l'erreur suivante apparaît.
python
Traceback (most recent call last):
File "send.py", line 6, in <module>
import gspread
ModuleNotFoundError: No module named 'gspread'
Tout ce que j'ai à faire est d'installer le 3ème système, mais je n'ai pas beaucoup étudié Python, donc je suis resté bloqué pendant plusieurs heures.
https://qiita.com/njn0te/items/4318347f8c4ed5137476
Recommended Posts