go

پلتفرم Golang

(Golang Platform)

ارسال ایمیل

برای استفاده از سرویس ایمیل در برنامه‌های Golang باید پس از ایجاد سرویس ایمیل و ساخت دسترسی SMTP، اطلاعات دسترسی SMTP را طبق مستندات تنظیم متغیرها به فایل .env موجود در مسیر اصلی برنامه اضافه کنید:

MAIL_FROM=email@email.email
MAIL_HOST=smtp.c1.liara.email
MAIL_PORT=587
MAIL_USERNAME=your-username
MAIL_PASSWORD=your-password
توجه داشته باشید که مقادیر MAIL_USERNAME و MAIL_PASSWORD در هر سرویس ایمیل ایجاد شده متفاوت است بنابراین باید آن‌ها را با مقادیر ارائه شده در تنظیمات سرویس ایمیل‌تان جایگزین کنید.
قابل ذکر است که مقدار MAIL_FROM در قطعه کد فوق باید یکی از نشانی‌های اضافه شده در سرویس ایمیل باشد.

برای استفاده از ایمیل سرور در برنامه‌های golang می‌توانیم از کتابخانه gomail استفاده کنیم. برای نصب این کتابخانه، کافیست که دستور زیر را در مسیر اصلی برنامه اجرا کنیم:

$ go get github.com/go-gomail/gomail

یک نمونه از برنامه golang که با استفاده از gomail به نشانی فرضی email@email.emailایمیل ارسال می‌کند؛ در زیر آمده است:

package main

import(
    "fmt"
    "strconv"
    "os"
    "github.com/go-gomail/gomail"
    "github.com/joho/godotenv"
)

func main() {
    err := godotenv.Load(".env")
    if err != nil {
        fmt.Println(err)
    }

    mailPort, err := strconv.Atoi(os.Getenv("MAIL_PORT"))
    if err != nil {
        fmt.Println("Error converting MAIL_PORT to int:", err)
        return
    }
	m := gomail.NewMessage()
	m.SetHeader("From", os.Getenv("MAIL_FROM")) 
	m.SetHeader("To", "email@email.email")
	m.SetHeader("Subject", "This is a TEST")
	body := "this is really a test"
	m.SetBody("text/plain", body)

    d := gomail.NewDialer(os.Getenv("MAIL_HOST"), mailPort, os.Getenv("MAIL_USERNAME"), os.Getenv("MAIL_PASSWORD"))

	if err := d.DialAndSend(m); err != nil {
		fmt.Println("Error sending Test email:", err)
	}
}

برای اطلاعات بیشتر می‌توانید به مستندات gomail مراجعه کنید.

;