اتصال به ایمیل‌سرور در برنامه‌های go


پروژه و کدهای مورد استفاده در ویدیوی فوق در اینجا قابل مشاهده و دسترسی هستند.

برای استفاده از سرویس ایمیل در برنامه‌های go، می‌توانید از پکیج gomail استفاده کنید که بایستی با دستور زیر، آن را در پروژه خود، نصب کنید:
کپی
go get gopkg.in/gomail.v2
پس از آن، کافیست تا طبق مستندات SMTP، یک دسترسی SMTP و طبق مستندات افزودن نشانی، یک نشانی برای ایمیل‌سرور خود، ایجاد کنید. در نهایت نیز، بایستی اطلاعات مربوط به ایمیل‌سرور خود را به متغیرهای محیطی برنامه خود، اضافه کنید؛ به عنوان مثال:
کپی
MAIL_HOST=smtp.c1.liara.email
MAIL_PORT=465
MAIL_USER=cranky_galileo_nhh78l
MAIL_PASSWORD=7ae28d03-2e09-4211-8e79-c3a54ae5798e
MAIL_FROM=info@example.com

مقدار MAIL_FROM، باید یکی از نشانی‌های اضافه شده در سرویس ایمیل باشد.

در نهایت می‌توانید در پروژه‌ی خود مانند مثال زیر عمل کرده و با استفاده از دسترسی SMTP سرویس ایمیل لیارا، اقدام به ارسال ایمیل‌های تراکنشی کنید:
کپی
package main

import (
	"fmt"
	"log"
	"os"
	"strconv"
	gomail "gopkg.in/mail.v2"
)

func main() {
	// Fetch environment variables
	host := os.Getenv("MAIL_HOST")

	port, err := strconv.Atoi(os.Getenv("MAIL_PORT"))
	if err != nil {
        panic(err)
	}

	user := os.Getenv("MAIL_USER")
	password := os.Getenv("MAIL_PASSWORD")
	from := os.Getenv("MAIL_FROM")

	// Define the email recipient, subject, and body
	to := "recipient@example.com"
	subject := "Test Email"
	body := "This is a test email."

	// Set up the email message
	msg := gomail.NewMessage()
	msg.SetHeader("From", from)
	msg.SetHeader("To", to)
	msg.SetHeader("Subject", subject)
	msg.SetHeader("x-liara-tag", "test-tag")
	msg.SetBody("text/plain", body)

	// Set up the SMTP client 
	dialer := gomail.NewDialer(host, port, user, password)
	dialer.SSL = true // force SSL

	// Send the email
	err = dialer.DialAndSend(msg)
	if err != nil {
		log.Fatalf("Failed to send email: %s", err)
	} else {
		fmt.Println("Email sent successfully!")
	}
}