iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > GO >GoLang:无法发送带附件的电子邮件
  • 488
分享到

GoLang:无法发送带附件的电子邮件

2024-02-11 14:02:39 488人浏览 泡泡鱼
摘要

PHP小编草莓今天给大家分享一篇关于golang的问题:无法发送带附件的电子邮件。在日常开发中,发送带附件的电子邮件是一个常见需求,但有时候我们会遇到一些问题。本文将介绍如何解决这个问

PHP小编草莓今天给大家分享一篇关于golang的问题:无法发送带附件的电子邮件。在日常开发中,发送带附件的电子邮件是一个常见需求,但有时候我们会遇到一些问题。本文将介绍如何解决这个问题,帮助大家顺利发送带附件的电子邮件。我们将一步步解析问题的原因,并提供相应的解决方案,希望能帮到大家。

问题内容

我正在尝试使用以下代码发送带有附件的电子邮件:

package mail

import (
    "bytes"
    logging "project/logging"
    "fmt"
    "log"
    "mime/multipart"
    "net/textproto"

    "Gopkg.in/mail.v2"
)

func SendWithAttachment(from string, to []string, subject, bodyhtml string, attachmentName string, attachmentData []byte) error {
    logoURL := "/path/to/cs.jpg"
    m := mail.NewMessage()
    m.SetHeader("From", from)
    m.SetHeader("To", to...)
    m.SetHeader("Subject", subject)
    m.Embed(logoURL)

    // Create a multipart message
    body := &bytes.Buffer{}
    writer := multipart.NewWriter(body)

    // Add HTML part
    htmlPart := make(textproto.MIMEHeader)
    htmlPart.Set("Content-Type", "text/html")
    htmlPart.Set("Content-Transfer-Encoding", "quoted-printable")
    htmlPartWriter, err := writer.CreatePart(htmlPart)
    if err != nil {
        logging.NewDefaultLogger().Errorf("Error creating html part: %s", err)
        return err
    }
    htmlPartWriter.Write([]byte(bodyHTML))

    // Add Attachment part
    attachmentPart := make(textproto.MIMEHeader)
    attachmentPart.Set("Content-Type", "application/octet-stream")
    attachmentPart.Set("Content-Transfer-Encoding", "base64")
    attachmentPart.Set("Content-Disposition", `attachment; filename="`+attachmentName+`"`)
    attachmentPartWriter, err := writer.CreatePart(attachmentPart)
    if err != nil {
        logging.NewDefaultLogger().Errorf("Error creating attachment part: %s", err)
        return err
    }
    attachmentPartWriter.Write(attachmentData)

    writer.Close()

    m.SetBody("multipart/mixed", body.String())

    fmt.Printf("Sending mail.....")
    err = gs.dialer.DialAndSend(m)
    if err != nil {
        logging.NewDefaultLogger().Errorf("Error sending email..: %s", err)
        return err
    }
    return nil
}

正文内容和附件内容均作为附件出现在名为“noname”的文件中。

附件文件内容如下:

--d885a04b467ae7d6100eb844c09574a6bdaef0a9796dc6fdde03a90613c9 内容传输编码:引用可打印 内容类型:text/html

... --d885a04b467ae7d6100eb844c09574a6bdaef0a9796dc6fdde03a90613c9 内容处置:附件;文件名=“resource_details.csv” 内容传输编码:base64 内容类型:应用程序/八位字节流

附件内容..

--d885a04b467ae7d6100eb844c09574a6bdaef0a9796dc6fdde03a90613c9--

解决方法

我能够让它工作:

m := mail.NewMessage()
    m.SetHeader("From", emailDetails.From)
    m.SetHeader("To", emailDetails.To...)
    m.SetHeader("Subject", emailDetails.Subject)

    if emailDetails.BodyHTML != "" {
        m.SetBody("text/html", emailDetails.BodyHTML)
    } else {
        m.SetBody("text/plain", emailDetails.BodyPlain)
    }

    if emailDetails.AttachmentName != "" && len(emailDetails.AttachmentData) > 0 {
        m.Attach(emailDetails.AttachmentName, mail.SetCopyFunc(func(writer io.Writer) error {
            _, err := writer.Write(emailDetails.AttachmentData)
            return err
        }))
    }

以上就是GoLang:无法发送带附件的电子邮件的详细内容,更多请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: GoLang:无法发送带附件的电子邮件

本文链接: https://www.lsjlt.com/news/563507.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • GoLang:无法发送带附件的电子邮件
    php小编草莓今天给大家分享一篇关于GoLang的问题:无法发送带附件的电子邮件。在日常开发中,发送带附件的电子邮件是一个常见需求,但有时候我们会遇到一些问题。本文将介绍如何解决这个问...
    99+
    2024-02-11
  • 如何在 vb.net 中发送带有附件的电子邮件
    在 VB.NET 中,你可以使用 `System.Net.Mail` 命名空间中的 `MailMessage` 类来创建和发送带附件...
    99+
    2023-09-26
    vb.net
  • python发送带附件的邮件
      来源:http://snipperize.todayclose.com/snippet/py/Send-email-with-p_w_upload--53762/ Send email with p_w_upload import sm...
    99+
    2023-01-31
    附件 邮件 python
  • Python如何实现发送带有pdf附件的电子邮件
    这篇文章主要介绍“Python如何实现发送带有pdf附件的电子邮件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python如何实现发送带有pdf附件的电子邮件”文章能帮助大家解决问题。一、如何使用...
    99+
    2023-07-05
  • 详解Python如何实现发送带附件的电子邮件
    Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件...
    99+
    2023-05-15
    Python发送带附件邮件 Python发送邮件 Python 邮件
  • python3 发送电子邮件
    使用python3发送电子邮件,我之前在网上找了好几篇文章不论是都不行,最后在网上找到这篇文章了!首先在163邮箱开启授权码记住这个授权密码,我们在python代码里面用的就是这个密码不然会出现这个报错#!/usr/bin/env pyth...
    99+
    2023-01-31
    发送电子邮件
  • 怎么用vbs发送带附件的邮件
    这篇文章主要介绍了怎么用vbs发送带附件的邮件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。function Send_mail(You_Account,You_P...
    99+
    2023-06-08
  • python3使用smtplib发送邮件,带xlsx附件
    最近在做一个统计报表,需要发送邮件,并带附件的。在之前的文章中https://www.cnblogs.com/xiao987334176/p/10022026.html已经实现了发送邮件,但是没有实现发送附件功能。 send_ma...
    99+
    2023-01-31
    发送邮件 附件 smtplib
  • Java实现发送邮件并携带附件
    本文实例为大家分享了Java实现发送邮件并携带附件的具体代码,供大家参考,具体内容如下 一、 邮件服务器与传输协议 要在网络上实现邮件功能,必须要有专门的邮件服务器。主要负责接收用户...
    99+
    2024-04-02
  • java发送邮件带附件怎么实现
    在Java中发送带附件的邮件可以使用JavaMail API来实现。以下是一个示例代码: import java.util.Prop...
    99+
    2024-02-29
    java
  • 如何用Python发送带有附件的邮件
    如何用Python发送带有附件的邮件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python 发送带有附件的邮件条件使用from django.core.ma...
    99+
    2023-06-02
  • SpringBoot实现发送电子邮件
    目录1. 前言1.1 电子邮件发展史1.2 电子邮件原理1.3 电子邮件地址的构成1.4 电子邮件传输协议2. 实现发送电子邮件3. 码农来洞见1. 前言 电子邮件是—种...
    99+
    2024-04-02
  • python发送邮件和附件
    发送邮件的时候,需要发送人,收件人,和一台邮件服务器,这里使用python发送一个邮件,主要需要引入smtplib和email库。下面是源码,粘贴即可用: #!/usr/bin/env python3 # coding: utf-8 imp...
    99+
    2023-01-31
    发送邮件 附件 python
  • Java实现批量发送带附件的邮件代码
    目录前言实体类(注意注释)实现类 方法中调用,详情如下:总结前言        新功能上线时要经常发包到测试或生产服务器进行模块部署...
    99+
    2024-04-02
  • Java如何实现带附件的邮件发送功能
    这篇文章主要讲解了Java如何实现带附件的邮件发送功能,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。需要导入mail.jar、activation.jar这两个邮件发送的jar包,可在网上搜索并下载需要设置相关...
    99+
    2023-05-31
    java ava
  • Java怎么实现批量发送带附件的邮件
    这篇文章主要讲解了“Java怎么实现批量发送带附件的邮件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么实现批量发送带附件的邮件”吧!实体类(注意注释)代码详情如下:package...
    99+
    2023-06-22
  • 怎么用Spring发送电子邮件
    小编给大家分享一下怎么用Spring发送电子邮件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Spring基于javax.mail封装了一套用于发送电子邮件的AP...
    99+
    2023-06-06
  • 在 PHP 中使用邮件表单发送电子邮件
    本文将演示安装 sendmail 库并通过 PHP 邮件表单发送电子邮件。 安装 sendmail 以在本地服务器上从 PHP 发送电子邮件 PHP 有一个内置函数 mail() 来发送电子邮...
    99+
    2024-02-27
  • python怎么发送带有附件、正文为HTML的邮件
    这篇“python怎么发送带有附件、正文为HTML的邮件”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“python怎么发送带有附件、正文为HTML的邮件”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥...
    99+
    2023-06-06
  • autojs使用intent发送邮件带附件实现示例
    目录正文环境正文 小米自带邮箱: 附件, 标题, 内容 这三个正常, 收件人为空; QQ邮箱: 全部正常 因此, 我给intent设置了QQ邮箱的包名 function sendE...
    99+
    2023-01-18
    autojs intent发邮件 autojs intent
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作