import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.mime.base import MIMEBase from datetime import datetime import InvoiceDatabase def send_email(test, record): port = 25 smtp_server = 'gll-com.mail.protection.outlook.com' # smtp_server = 'mail.keystonerelay.com' orders = InvoiceDatabase.just_work() for each in orders: info = InvoiceDatabase.record_lookup(each) OrderNumber = info[0] OrderDate = datetime.strptime(info[1], '%Y-%m-%d %I:%M:%S') UserLogon = info[2] Name = info[3] + ' ' + info[4] ChargeCode = info[5] InvoiceNumber = info[6] InvoiceEmailAddress = info[7] ShippingCharges = info[16] BalanceDue = info[17] InvoiceDate = datetime.today().strftime('%m/%d/%Y') #shipping information ShippingCompany = info[8] ShippingFirstName = info[9] ShippingLastName = info[10] ShippingAddress1 = info[11] ShippingAddress2 = info[12] ShippingCity = info[13] ShippingState = info[14] ShippingPostalCode = info[15] # if ShippingCompany != 'None' and ShippingAddress2 == 'None': block = '''
{name}
{ShippingAddress1}
{ShippingCity}, {ShippingState} {ShippingZip}

''' addressBlock = block.format(name=Name, ShippingAddress1=ShippingAddress1, ShippingCity=ShippingCity, ShippingState=ShippingState, ShippingZip=ShippingPostalCode) itemDetailBlock = ''' ''' items = InvoiceDatabase.all_items(OrderNumber) for eachItem in items: info = InvoiceDatabase.item_lookup(eachItem) Quantity = info[0] DocumentID = info[1] ProductName = info[2] ItemPrice = info[3] addItem = ''' ''' itemDetailBlock = itemDetailBlock + addItem.format(Quantity=Quantity, DocumentID=DocumentID, ProductName=ProductName, ItemPrice=ItemPrice) addItem = '''
QuantityDocument ID Product NameSales
{Quantity} {DocumentID} {ProductName} ${ItemPrice:,.2f}
Shipping:  ${ShippingCharges:,.2f}
Invoice Total ${BalanceDue:,.2f}
''' itemDetailBlock = itemDetailBlock + addItem.format(ShippingCharges=ShippingCharges, BalanceDue=BalanceDue) body = ''' CFF Order Invoice

INVOICE


Shipment Address
{addressBlock}

 

Make Checks Payable To:
Great Lakes Integrated
4246 Hudson Dr.
Stow, Ohio 44224
 


Order Number: {OrderNumber} 
Order Date: {OrderDate:%m-%d-%Y %I:%M:%S} 
User Logon: {UserLogon} 
Name: {Name} 
Charge Code: {ChargeCode} 

Invoice Number: {InvoiceNumber} 
Invoice Date: {InvoiceDate} 
Customer Number: 1925 
Terms:Due in 30 days 

The order consists of the following items:

{itemDetailBlock}
''' HTMLpart = body.format(addressBlock=addressBlock, OrderNumber=OrderNumber, OrderDate=OrderDate, UserLogon=UserLogon, Name=Name, ChargeCode=ChargeCode, InvoiceDate=InvoiceDate, InvoiceNumber=InvoiceNumber, itemDetailBlock=itemDetailBlock) bodyHTML = MIMEText(HTMLpart, "html") #html output for testing f = open("sample.html", 'w') f.write(HTMLpart) f.close() msg = MIMEMultipart() msg['Subject'] = 'INVOICE ' + InvoiceNumber if test is True: msg['To'] = 'dan.dembinski@gmail.com' else: msg['To'] = InvoiceEmailAddress msg['Cc'] = 'Carrie Higgins ' msg['Bcc'] = 'ddembinski@gll.com' msg['From'] = 'Matt MulQueeny ' msg.add_header('Content-Type', 'text/html') msg.attach(bodyHTML) try: with smtplib.SMTP(smtp_server, port, timeout=120) as server: # server.sendmail(msg['From'], msg['To'] + ',' + msg['Cc'] + ',' + msg['Bcc'], msg.as_string()) server.send_message(msg) except Exception as e: print(e)