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') | 
