簡體   English   中英

將電子郵件發送到Perl腳本,但總是返回錯誤消息

[英]Piping email to Perl script, but always gives back error message

我正在嘗試弄清楚如何使此電子郵件管道在我正在執行的腳本中工作。 在CPanel中,我將其設置為轉發至:

當前設置:| /home/user/public_html/cgi-bin/links/email-in.cgi

該腳本非常簡單:

#!/usr/local/bin/perl

use strict;
use lib '/home/user/public_html/cgi-bin/links/admin';
use Links qw/$DB $IN $CFG/;
use CGI::Carp qw(fatalsToBrowser);
use Links;

Links::init('/home/user/public_html/cgi-bin/links/admin');

open (STDERR, ">>/home/user/public_html/cgi-bin/links/mail.log") || die $!;

my $message;
while (<STDIN>) {
    $message .= $_;
}

print STDERR qq|$message\n\n|;

close (STDERR);

print $IN->header;
print "FOO BAR";

然后將測試電子郵件發送到該地址,我可以在email.log中正確看到<STDIN>的值。 但是,大約一分鍾后,我收到了該電子郵件的退回通知:

該消息是由郵件傳遞軟件自動創建的。

您發送的郵件無法傳遞給一個或多個收件人。 這是一個永久性錯誤。 以下地址失敗:

管道到foo@resa.site.org生成的| /home/user/public_html/cgi-bin/links/email-in.cgi

嘗試交付期間生成了以下文本:

------通過foo@resa.site.org生成的| /home/user/public_html/cgi-bin/links/email-in.cgi管道------

內容類型:text / html; 字符集= iso-8859-1

FOO BAR操作:最終收件人失敗:rfc822; | /home/user/public_html/cgi-bin/links/email-in.cgi狀態:5.0.0

我對為什么要這樣做感到有些困惑。 我需要返回特定的標頭,還是類似的東西? (告訴電子郵件程序已正確處理)

恩,我知道這會發生! 從字面上看,我一經發布就在這里找到了答案:

https://confluence2.cpanel.net/display/ALD/Forwarders#Forwarders-PipetoaProgram

如果您的腳本產生了任何輸出,甚至是空行,則系統將創建包含該輸出的退回消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM