Ich beschloss, die Geschichte ernsthaft im Radio zu veröffentlichen. Es ist wichtig, viel zu posten, um die Anzahl der Einstellungen zu erhöhen, und Sie müssen viel senden. In der Zwischenzeit fand ich die E-Mail nervig. Grundsätzlich wird das Material per E-Mail verschickt. Eine Geschichte für jede Kopie. 10 E-Mails zum Versenden von 10 Geschichten ... Also beschloss ich, etwas zu machen, das alle Nachrichten auf einmal verschickt.
Ich habe zwei Blätter verwendet und die Blattnamen waren "Index" und "Main". Der Inhalt ist wie folgt. -Index: Zählen Sie E-Mail-Adresse und Passwort, Ziel, Absender, Funkname, Adresse, Name -Main: Betreff, Material, Erstellungsdatum, Übertragungsdatum, Status, Ergebnis
Index Main
$ pip install gspread oauth2client
send.py
#E-Mail senden Beziehungen
from email.mime.text import MIMEText
from email.utils import formatdate
import smtplib
#API-Kooperationsbeziehung
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
#Alle Werte werden einer Variablen namens data zugewiesen.
data = sheet2.get_all_records()
#Holen Sie sich die Anzahl der Daten
last_number = len(data)
# pprint(data)
for row in range(last_number):
#Übertragungsurteil
status = data[row]["Ergebnis"]
if status == "Erledigt":
continue
#Extrahieren Sie die Informationen, die zum Senden einer E-Mail erforderlich sind
body = data[row]["Neta"]
radioName = "Funkname:" + _radioName
msg = MIMEText(body + "\n\n" + radioName + "\n\n" + _address + "\n\n" + _name)
#Blattaktualisierung
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, "geschickt")
sheet2.update_cell(row + 2, 7, "Erledigt")
msg['Subject'] = data[row]["Gegenstand"]
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()
In der Python2-Serie wird der folgende Fehler angezeigt.
python
Traceback (most recent call last):
File "send.py", line 6, in <module>
import gspread
ModuleNotFoundError: No module named 'gspread'
Alles was ich tun muss ist das 3. System zu installieren, aber ich habe nicht viel über Python gelernt, also blieb ich einige Stunden stecken.
https://qiita.com/njn0te/items/4318347f8c4ed5137476