95 lines
		
	
	
		
			No EOL
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			No EOL
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from flask import Blueprint, render_template, request, flash, redirect, url_for
 | 
						|
import smtplib
 | 
						|
from email.mime.text import MIMEText
 | 
						|
from dotenv import load_dotenv
 | 
						|
import os
 | 
						|
 | 
						|
load_dotenv()
 | 
						|
 | 
						|
main = Blueprint('main', __name__)
 | 
						|
 | 
						|
@main.route('/')
 | 
						|
def index():
 | 
						|
    return render_template('index.html')
 | 
						|
 | 
						|
@main.route('/services')
 | 
						|
def services():
 | 
						|
    return render_template('services.html')
 | 
						|
 | 
						|
@main.route('/pricing')
 | 
						|
def pricing():
 | 
						|
    return render_template('pricing.html')
 | 
						|
 | 
						|
@main.route('/solutions')
 | 
						|
def solutions():
 | 
						|
    return render_template('solutions.html')
 | 
						|
 | 
						|
@main.route('/oss-compliance')
 | 
						|
def oss_compliance():
 | 
						|
    return render_template('oss_compliance.html')
 | 
						|
 | 
						|
@main.route('/about')
 | 
						|
def about():
 | 
						|
    return render_template('about.html')
 | 
						|
 | 
						|
@main.route('/privacy-policy')
 | 
						|
def privacy_policy():
 | 
						|
    return render_template('privacy.html')
 | 
						|
 | 
						|
@main.route('/terms-of-service')
 | 
						|
def terms_of_service():
 | 
						|
    return render_template('termsofservice.html')
 | 
						|
 | 
						|
@main.route('/careers')
 | 
						|
def careers():
 | 
						|
    return render_template('careers.html')
 | 
						|
 | 
						|
def send_email(subject, body, recipient):
 | 
						|
    """Sends email, returns True on success, False on failure."""
 | 
						|
    try:
 | 
						|
        smtp_server = os.getenv('SMTP_SERVER')
 | 
						|
        smtp_port = int(os.getenv('SMTP_PORT'))
 | 
						|
        smtp_user = os.getenv('SMTP_USER')
 | 
						|
        smtp_password = os.getenv('SMTP_PASSWORD')
 | 
						|
        sender_email = smtp_user
 | 
						|
 | 
						|
        server = smtplib.SMTP_SSL(smtp_server, smtp_port, timeout=10)
 | 
						|
        server.set_debuglevel(False)
 | 
						|
        server.login(smtp_user, smtp_password)
 | 
						|
 | 
						|
        msg = MIMEText(body, "plain", "utf-8")
 | 
						|
        msg["Subject"] = subject
 | 
						|
        msg["From"] = sender_email
 | 
						|
        msg["To"] = recipient
 | 
						|
 | 
						|
        server.sendmail(sender_email, recipient, msg.as_string())
 | 
						|
        server.quit()
 | 
						|
 | 
						|
        return True
 | 
						|
    except Exception as e:
 | 
						|
        return False
 | 
						|
 | 
						|
@main.route('/contact', methods=['GET', 'POST'])
 | 
						|
def contact():
 | 
						|
    if request.method == 'POST':
 | 
						|
        name = request.form.get('name')
 | 
						|
        email = request.form.get('email')
 | 
						|
        message = request.form.get('message')
 | 
						|
 | 
						|
        if not name or not email or not message:
 | 
						|
            flash('Please fill out all fields.', 'error')
 | 
						|
            return redirect(url_for('main.contact'))
 | 
						|
 | 
						|
        subject = f"New Contact Form Submission from {name}"
 | 
						|
        body = f"Name: {name}\nEmail: {email}\nMessage: {message}"
 | 
						|
 | 
						|
        recipient_email = os.getenv('SENDER_EMAIL')
 | 
						|
 | 
						|
        if send_email(subject, body, recipient_email):
 | 
						|
            flash('Your message has been sent! We will get back to you soon.', 'success')
 | 
						|
        else:
 | 
						|
            flash('An error occurred while sending your message. Please try again later.', 'error')
 | 
						|
 | 
						|
        return redirect(url_for('main.contact'))
 | 
						|
 | 
						|
    return render_template('contact.html') |