使用perl的Net::SMTP::SSL模块发送smtps带附件的邮件

32 篇文章 1 订阅
11 篇文章 0 订阅
use Net::SMTP::SSL;  
use MIME::Lite;
 
my  $mail_from = 'user1@mail.smtpstest.com';  
my  $mail_to = 'user2@mail.smtpstest.com';   
my  $mail_subject = "Perl smtps testing1\n";  
my $username = "user1";
my $password = "123";
 
sub SendAttachMail  
{  
    my $mail_content = shift;  
    my $mail_attach = shift;
 
    my $smtp = Net::SMTP::SSL->new(  
                        'mail.smtpstest.com',  
                        Hello=>'mail.smtpstest.com',  
                        Port=>465,  
                        LocalPort=>0,  
                        Debug=>1);  
 
    die("smtp undefined: $@") if !defined $smtp;  
 
    my $auth_return = $smtp->auth($username,$password);  
    die("auth error: $@") if !defined $auth_return;  
    
    my @tmp = split/\\/,$mail_attach;
    my $attach_name = pop(@tmp);
    my $msg=MIME::Lite->new(
                    From=>$mail_from,
                    To=>$mail_to,
                    Subject=>$mail_subject,
                    Type=>'TEXT',
                    Data=>$mail_content,);

    $msg->attach(
            Type=>'AUTO',
            Path=>$mail_attach,
            Filename=>$attach_name,);

    my $content_string=$msg->as_string() or die "$!";
    
 
    $smtp->mail($mail_from);  
    $smtp->to($mail_to);  
    #$smtp->cc($mail_cc);  
    #$smtp->bcc($mail_bcc);  
    $smtp->data();   
    $smtp->datasend($content_string);
    $smtp->dataend();  
    $smtp->quit;  
}  
SendAttachMail("附件是一个virus文件",'/test/test.txt');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]和引用\[2\]的内容,出现"Could not connect to SMTP host: smtp.qq.com, port: 465"的错误可能是由于无法连接到SMTP主机和端口导致的。这个错误可能有几种解决方法。首先,你可以尝试向云厂商申请解封25端口,或者改用465端口进行SSL加密发送邮件。465端口是为SMTPS(SMTP-over-SSL)协议服务开放的,它继承了SSL安全协议的非对称加密的高度安全可靠性,可以防止邮件泄露。你可以在Spring Boot的配置文件中设置相应的属性,如引用\[2\]中的示例所示,包括设置host、username、password、port等属性,并确保启用SSL加密。另外,你还可以尝试在设置发送邮件邮件服务器的属性时,添加一行代码props.put("mail.smtp.ssl.protocols", "TLSv1.2"),以确保使用TLSv1.2协议进行连接。这些方法可能有助于解决"Could not connect to SMTP host: smtp.qq.com, port: 465"的问题。 #### 引用[.reference_title] - *1* [使用hutool-all进行邮件发送报错Could not connect to SMTP host: smtp.qq.com, port: 465](https://blog.csdn.net/lyhyrc/article/details/127446891)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [云部署springboot项目邮件Could not connect to SMTP host: smtp.qq.com, port: 25错误](https://blog.csdn.net/LRXmrlirixing/article/details/124986899)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [写定时任务发送邮件报错(Could not connect to SMTP host:smtp.exmail.qq.com,port:465)](https://blog.csdn.net/weixin_44826970/article/details/126582508)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值