first commit

This commit is contained in:
2025-08-14 00:31:16 -04:00
commit 2208c6bdfd
37 changed files with 4049 additions and 0 deletions

105
api/main.go Normal file
View File

@ -0,0 +1,105 @@
package main
import (
"fmt"
"log"
"net/http"
"net/smtp"
)
func contactFormHandler(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
return
}
// Parse form data
if err := r.ParseForm(); err != nil {
http.Error(w, "Error parsing form", http.StatusBadRequest)
return
}
name := r.FormValue("name")
email := r.FormValue("email")
message := r.FormValue("message")
// Basic validation
if name == "" || email == "" || message == "" {
http.Error(w, "All fields are required", http.StatusBadRequest)
return
}
// In a real application, you'd send an email or save to a database here
// For demonstration, print to console
fmt.Printf("Received contact form submission:\nName: %s\nEmail: %s\nMessage: %s\n", name, email, message)
// SMTP server details for Stalwart
smtpHost := "your_stalwart_hostname.com" // Replace with your Stalwart server hostname
smtpPort := "587" // Standard submission port with STARTTLS
smtpAddress := smtpHost + ":" + smtpPort
// Authentication credentials
username := "your_email@your_domain.com" // Replace with a valid Stalwart email account
password := "your_email_password" // Replace with the password for the email account
// Sender and recipient details
from := username
to := []string{"recipient@example.com"} // Replace with the recipient's email address
// Email message
msg := []byte("To: recipient@example.com\r\n" +
"Subject: Test Email from Go and Stalwart\r\n" +
"\r\n" +
"This is a test email sent from a Go application through Stalwart.")
// Set up authentication
auth := smtp.PlainAuth("", username, password, smtpHost)
// Send the email
err := smtp.SendMail(smtpAddress, auth, from, to, msg)
if err != nil {
log.Fatalf("Error sending email: %v", err)
}
log.Println("Email sent successfully!")
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, "Contact form submitted successfully!")
}
func main() {
http.HandleFunc("/v1/api/contact", contactFormHandler)
fmt.Println("Server listening on :8080")
log.Fatal(http.ListenAndServe(":8080", nil))
// // SMTP server details for Stalwart
// smtpHost := "mail.npfd.info" // Replace with your Stalwart server hostname
// smtpPort := "587" // Standard submission port with STARTTLS
// smtpAddress := smtpHost + ":" + smtpPort
// // Authentication credentials
// username := "postman@npfd.info" // Replace with a valid Stalwart email account
// password := "TOPSECRET" // Replace with the password for the email account
// // Sender and recipient details
// from := username
// to := []string{"recipient@example.com"} // Replace with the recipient's email address
// // Email message
// msg := []byte("To: recipient@example.com\r\n" +
// "Subject: Test Email from Go and Stalwart\r\n" +
// "\r\n" +
// "This is a test email sent from a Go application through Stalwart.")
// // Set up authentication
// auth := smtp.PlainAuth("", username, password, smtpHost)
// // Send the email
// err := smtp.SendMail(smtpAddress, auth, from, to, msg)
// if err != nil {
// log.Fatalf("Error sending email: %v", err)
// }
// log.Println("Email sent successfully!")
}