tencent cloud

Simple Email Service

製品の説明
製品概要
製品の機能
製品の優位性
ユースケース
仕様明細
購入ガイド
料金説明
クイックスタート
メール設定
メール送信
信頼度レベルの説明
コンソールガイド
メール設定
メール送信
データ統計
SMTPドキュメント
SMTPメール送信ガイド
SMTPサービスアドレス
Java呼び出し例
Go呼び出し例
PHP呼び出し例
添付ファイル付きメールの送信
エラーコード
Webhookドキュメント
メール通知イベント
メール送信制限
添付ファイルタイプ
よくあるご質問
スタートに関するご質問
課金関連問題
送信制限に関するご質問
送信機能に関するご質問
ドメイン名に関するご質問
テンプレートに関するご質問
ID認証と設定に関するご質問
専用IPに関するご質問
配信に関するご質問
APIの使用に関するご質問
コールバックに関するご質問
迷惑メールフォルダに関するご質問
セキュリティに関するご質問
ちゅういじこう
その他のご質問
お問い合わせ

Go呼び出し例

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-12-15 12:08:02
次のコード例、Go言語(バージョンは1.16)は、SMTP経由でメールを送信します。
package main

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

// Test465 for port 465
func Test465() error {
host := "sg-smtp.qcloudmail.com"
port := 465
//コンソールで作成された送信元アドレス
email := "abc@cd.com"
//コンソールで設定されたSMTPパスワード
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形式のメール
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>私の最初の件名</h1>\\n <p>私の最初の段落。</p>\\n</body>\\n</html>"
//プレーンテキストメール
//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()
}


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック