tencent cloud

Simple Email Service

Deskripsi Produk
Ikhtisar
Fitur
Keunggulan
Kasus Penggunaan
Spesifikasi
Panduan Pembelian
Harga
Panduan Konsol
Konfigurasi
Statistik
Dokumentasi SMTP
Panduan Pengiriman Email SMTP
Alamat Layanan SMTP
Contoh Panggilan untuk Java
Contoh Panggilan untuk Go
Mengirim Email dengan Lampiran
Kode Kesalahan
Dokumentasi Webhook
Pemberitahuan Peristiwa Email
Pembatasan Pengiriman Email
Jenis Lampiran
Pertanyaan Umum
Memulai
Batas Pengiriman
Fitur Pengiriman
Domain
Templat
Verifikasi dan Konfigurasi Identitas
IP Khusus
Pengiriman
Penggunaan API
Panggilan Balik
Folder Spam
Keamanan
Catatan Penting
Lainnya
Hubungi Kami

Contoh Panggilan untuk Go

PDF
Mode fokus
Ukuran font
Terakhir diperbarui: 2025-12-15 12:08:02
Contoh kode berikut menggunakan SMTP untuk mengirim email dalam bahasa Go (v1.16):
package main

import (
"crypto/tls"
"fmt"
"log"
"net"
"net/smtp"
"encoding/base64"
)

// Test465 untuk port 465
func Test465() error {
host := "sg-smtp.qcloudmail.com"
port := 465
// Alamat pengirim dibuat di konsol
email := "abc@cd.com"
// Kata sandi SMTP diatur di konsol
password := "****"
toEmail := "test@test123.com"
ccEmail := "cc@test123.com"
bccEmail := "bcc@test123.com"
header := make(map[string]string)
header["From"] = "test " + "<" + email + ">"
header["To"] = toEmail
header["Cc"] = ccEmail
header["Bcc"] = bccEmail
header["Subject"] = "test subject"
// HTML email
header["Content-Type"] = "text/html; charset=UTF-8"
header["Content-Transfer-Encoding"] = "base64"
body := "<!DOCTYPE html>\\n<html>\\n<head>\\n<meta charset=\\"utf-8\\">\\n<title>hello world</title>\\n</head>\\n<body>\\n " +
"<h1>My first heading</h1>\\n <p>My first paragraph.</p>\\n</body>\\n</html>"
// Email teks biasa
//header["Content-Type"] = "text/plain; charset=UTF-8"
//body := "test body"
message := ""
for k, v := range header {
message += fmt.Sprintf("%s: %s\\r\\n", k, v)
}
message += "\\r\\n" + base64.StdEncoding.EncodeToString([]byte(body))
auth := smtp.PlainAuth(
"",
email,
password,
host,
)
err := SendMailWithTLS(
fmt.Sprintf("%s:%d", host, port),
auth,
email,
[]string{toEmail},
[]byte(message),
)
if err != nil {
fmt.Println("Send email error:", err)
} else {
fmt.Println("Send mail success!")
}
return err
}

// Dial return a smtp client
func Dial(addr string) (*smtp.Client, error) {
conn, err := tls.Dial("tcp", addr, nil)
if err != nil {
log.Println("tls.Dial Error:", err)
return nil, err
}

host, _, _ := net.SplitHostPort(addr)
return smtp.NewClient(conn, host)
}

// SendMailWithTLS send email with tls
func SendMailWithTLS(addr string, auth smtp.Auth, from string,
to []string, msg []byte) (err error) {
//create smtp client
c, err := Dial(addr)
if err != nil {
log.Println("Create smtp client error:", err)
return err
}
defer c.Close()
if auth != nil {
if ok, _ := c.Extension("AUTH"); ok {
if err = c.Auth(auth); err != nil {
log.Println("Error during AUTH", err)
return err
}
}
}
if err = c.Mail(from); err != nil {
return err
}
for _, addr := range to {
if err = c.Rcpt(addr); err != nil {
return err
}
}
w, err := c.Data()
if err != nil {
return err
}
_, err = w.Write(msg)
if err != nil {
return err
}
err = w.Close()
if err != nil {
return err
}
return c.Quit()
}

func main() {
Test465()
}


Bantuan dan Dukungan

Apakah halaman ini membantu?

masukan