可以使用Ruby的邮件库来实现。以下是一个示例代码:
require 'net/smtp'
require 'mail'
def send_email_with_attachment(to, subject, body, attachment_path)
# 创建邮件对象
mail = Mail.new do
from 'sender@example.com'
to to
subject subject
body body
end
# 添加附件
attachment = Mail::Attachment.new
attachment.content_type = 'application/octet-stream'
attachment.filename = File.basename(attachment_path)
attachment.content = File.read(attachment_path)
mail.add_attachment(attachment)
# 发送邮件
smtp = Net::SMTP.new('smtp.example.com', 587)
smtp.enable_starttls
smtp.start('example.com', 'username', 'password', :login) do |smtp|
smtp.send_message(mail.to_s, 'sender@example.com', to)
end
end
# 调用发送邮件函数
send_email_with_attachment('recipient@example.com', 'Hello', 'This is the body of the email.', '/path/to/attachment.pdf')
这段代码使用了Ruby的邮件库mail
和net/smtp
来发送带附件的电子邮件。首先,创建一个邮件对象并设置发件人、收件人、主题和正文。然后,创建一个附件对象并设置附件的内容类型、文件名和内容。接下来,将附件添加到邮件对象中。最后,使用SMTP协议发送邮件。
请注意,上述示例中的SMTP服务器地址、端口号、发件人邮箱、发件人用户名和密码需要根据实际情况进行替换。
推荐的腾讯云相关产品是腾讯云邮件推送(https://cloud.tencent.com/product/ses)和腾讯企业邮(https://cloud.tencent.com/product/exmail),它们提供了可靠的邮件发送和管理服务,适用于各种规模的企业和个人用户。
领取专属 10元无门槛券
手把手带您无忧上云