از این جایگزین برای بسته ایمیل داخلی Go برای زمان راحتتری استفاده کنید.
همانطور که برنامه ها را می سازید، باید برای مقاصد مختلف ایمیل ارسال کنید، از اعلان ها گرفته تا احراز هویت و بسیاری موارد دیگر. Go بسته های smtp و mail را در کتابخانه استاندارد خود برای ارسال ایمیل فراهم می کند. همچنین بسیاری از بسته های ایمیل شخص ثالث در اکوسیستم Go وجود دارد.
بسته های ایمیل داخلی، ارسال ایمیل را به یک کار پیچیده تبدیل می کند. اگر توسعهدهنده برنامههای سمت سرور نیستید، ممکن است بستههای smtp و mail را برای استفاده و پیکربندی مشکل پیدا کنید.
یکی از جایگزین های محبوب، بسته ایمیل جردن رایت است که پیچیدگی ارسال نامه را خلاصه می کند. همچنین ویژگی هایی را اضافه می کند که در بسته های smtp و mail نمی توانید پیدا کنید.
شروع کار با بسته ایمیل
بسته ایمیل یک کتابخانه سبک، قوی و منعطف است که به دلیل سادگی بسیار محبوب است. تنها با چند خط کد، می توانید ایمیلی با پیوست ها، محتوای HTML و موارد دیگر ایجاد و ارسال کنید. این بسته همچنین از ویژگیهای پیشرفته مانند اتصالات امن SMTP و چندین گیرنده پشتیبانی میکند که آن را به ابزاری همه کاره برای نیازهای ایمیل شما تبدیل میکند.
بسته ایمیل همچنین از فیلدهای CC و BCC، آدرسهای ایمیل در قالبهای مختلف، رسید خواندن و هدرهای سفارشی پشتیبانی میکند.
از آنجایی که بسته در کتابخانه استاندارد Go تعبیه نشده است، باید آن را با دستور go get نصب کنید. بسته ایمیل از نسخه های Go 1.15 و بالاتر پشتیبانی می کند.
این دستور را اجرا کنید تا پس از مقداردهی اولیه یک پروژه جدید، بسته را به وابستگی های پروژه خود نصب کنید.
go get github.com/jordan-wright/email
هنگامی که بسته ایمیل را نصب کردید، می توانید با تعیین مکان نسبت به مسیر نصب خود، آن را وارد کنید:
import (
"fmt"
"github.com/jordan-wright/email"
"net/smtp"
)
شما از بسته fmt برای چاپ خروجی در کنسول و بسته smtp برای اهداف احراز هویت استفاده خواهید کرد.
ارسال ایمیل با بسته ایمیل
شما باید متغیرهایی را برای ذخیره داده ها برای ایمیل خود اعلام کنید. متغیرهایی را برای ایمیل و رمز عبور خود اعلام کنید.
mail := "your email"
password := "your app password"
می توانید رمز عبور را سخت کد کنید یا از یک فایل متغیر محیطی برای بهبود امنیت استفاده کنید.
متغیرهای mail و گذرواژه باید به ترتیب ایمیل و رمز عبور شما را نگه دارند.
شما باید متغیرهایی را برای آدرس میزبان و شماره پورت را برای ایمیل اعلام کنید. آدرس میزبان و شماره پورت ایمیل یاهو در اینجا آمده است:
hostAddress := "smtp.mail.yahoo.com"
hostPort := "465"
همچنین باید یک نمونه ایمیل جدید برای ارسال ایمیل با بسته ایمیل ایجاد کنید. می توانید از روش NewEmail بسته ایمیل برای مقداردهی اولیه یک نمونه ایمیل برای نامه خود استفاده کنید:
newEmail := email.NewEmail()
روش NewEmail یک نمونه ساختاری را برمیگرداند که میتوانید آن را برای عناصر ایمیل خود تغییر دهید.
میتوانید از فیلدهای From و To ساختار استفاده کنید تا ایمیلهای فرستنده و گیرنده را به نمونه ایمیل خود اضافه کنید.
newEmail.From = mail
newEmail.To = []string{"list of recipients"}
فیلد To تکهای از رشتهها با ظرفیت نامحدود است که میتوانید از آن برای اعلام همه آدرسهای گیرنده خود استفاده کنید.
می توانید فیلدهای CC و BCC را با استفاده از فیلدهای Bcc و Cc نمونه ساختار اضافه کنید:
newEmail.Bcc = []string{"list of bcc"}
newEmail.Cc = []string{"list of cc"}
برای محتویات نامه، می توانید موضوع و محتوای متن ایمیل خود را با استفاده از فیلدهای موضوع و متن ساختار اضافه کنید. موضوع یک فیلد رشته ای و محتوای متن یک تکه بایت است.
newEmail.Subject = "The Email subject"
newEmail.Text = []byte("Body of your email")
پس از اینکه تمام فیلدهای مورد نیاز را اضافه کردید، می توانید ایمیل را با استفاده از روش ارسال نمونه ایمیل خود ارسال کنید. متد Send آدرس میزبان، شماره پورت میزبان و نمونه ای از PlainAuth بسته smtp را می گیرد.
err := newEmail.Send(
fmt.Sprintf("%s:%s", hostAddress, hostPort),
smtp.PlainAuth("", mail, password, hostAddress)
)
if err != nil {
fmt.Println("There was an error sending the mail")
} else {
fmt.Println("The mail was sent successfully")
}
متد Send خطایی را برمیگرداند که میتوانید آن را کنترل کنید یا اگر خطایی وجود نداشته باشد، آن را صفر میکند.
شما با موفقیت ایمیلی با بسته ایمیل با خطوط کمتری نسبت به ارسال ایمیل با بسته smtp ارسال کرده اید.
می توانید با بسته SMTP داخلی نامه ارسال کنید
Go یک زبان خوب برنامه ریزی شده است زیرا کتابخانه استاندارد آن دارای اکثر قابلیت هایی است که برای ساختن برنامه های وب کامل بدون وابستگی های خارجی یا بسته های شخص ثالث به آن نیاز دارید.
بسته smtp برای ارسال ایمیل از طریق سرویس های مختلف با عملکردهای مشابه بسته ایمیل مفید است.