Il s'agit probablement d'une question croisée valide pour SO et SF. J'utilise un script Perl comme suit pour envoyer un courrier électronique:Pourquoi MIME :: Lite de Perl échoue-t-il lorsque la commande "Données SMTP() a échoué: 2.1.5 ... Destinataire ok"?
my $SMTP_SERVER = 'xx.xx.xx.xx';
my $DEFAULT_SENDER = '[email protected]';
my $DEFAULT_RECIPIENT = '[email protected]';
### Create the multipart "container":
$msg = MIME::Lite->new(
From =>$DEFAULT_SENDER,
To =>$input{to},
Cc =>$DEFAULT_SENDER,
Subject =>$input{mailsubject},
Type =>'multipart/mixed'
);
my $msgbody="<body bgcolor=\"#C0C0C0\">\n";
$msgbody.="<img src="cid:xyz.gif"><br>O hai thar.."
$msgbody.="</body>";
### Add the text message part:
### (Note that "attach" has same arguments as "new"):
$msg->attach(
Type =>'text/html',
Data =>$msgbody
);
### Add the logo image part:
$msg->attach(
Type => 'image/gif',
Id => 'xyz.gif',
Path => '/var/www/images/xyz.gif',
);
### Add the file part:
$msg->attach(
Type =>'application/zip',
Path =>$input{fullpath},
Filename =>$input{file},
Disposition => 'attachment'
);
open ERROR, '>>', "/debug/error.txt" or die $!;
STDERR->fdopen(\*ERROR, 'w');
eval{
# send the email
MIME::Lite->send('smtp', $SMTP_SERVER, Timeout=>30, Debug=>1, Notify => ['FAILURE','DELAY'], SkipBad => 1);
$msg->send();
1;
}
or do{&error([email protected])};
close ERROR;
Maintenant ce script fonctionne agréable pour 98% des e-mails envoyés .. mais .. le grand client de 2% est celui que je J'essaie de comprendre maintenant. Chaque fois que j'envoie à ce client en particulier, je reçois le message: La commande SMTP data() échoue: 2.1.5 ... Destinataire ok.
Quelqu'un at-il déjà vu cette erreur ou avez-vous une idée de l'endroit où se trouve mon problème? J'ai essayé de remplacer le X-Mailer: l'en-tête pensait que le spam était filtré. J'ai essayé d'envoyer le même message à d'autres personnes sur notre domaine et cela ne fonctionne pas pour l'URL de ce client.
tête d'exemple ci-dessous:
MIME-Version: 1.0
Content-Transfer-Encoding: binary
Content-Type: multipart/mixed;
boundary="_----------=_12845827796770"
X-Mailer: MIME::Lite 3.027 (F2.76; T1.29; A2.03; B3.07_01; Q3.07)
Date: Wed, 15 Sep 2010 13:37:59 -0700
From: [email protected]
To: [email protected], [email protected], [email protected]
Cc: [email protected]
Subject: TEST
Des indices?
En outre, l'envoi direct d'un courrier électronique à l'aide d'Outlook avec les mêmes pièces jointes fonctionne parfaitement avec ce client et le même serveur SMTP. Ce n'est que lors de l'envoi via ce processus automatisé que l'erreur se pose, c'est laide.
Mise à jour: journal de débogage (qui m'a pense qu'il est un gros problème de latence où les réponses reviennent asynch et arrosant le flux normal des activités dans le processus de MIME :: Lite)
MIME::Lite::SMTP>>> MIME::Lite::SMTP
MIME::Lite::SMTP>>> Net::SMTP(2.31)
MIME::Lite::SMTP>>> Net::Cmd(2.29)
MIME::Lite::SMTP>>> Exporter(5.62)
MIME::Lite::SMTP>>> IO::Socket::INET(1.31)
MIME::Lite::SMTP>>> IO::Socket(1.30_01)
MIME::Lite::SMTP>>> IO::Handle(1.27)
MIME::Lite::SMTP=GLOB(0x84ac258)<<< 220 smpt.xxx.com ESMTP Sendmail 8.12.9/8.13.1; Wed, 15 Sep 2010 16:50:44 -0700 (PDT)
MIME::Lite::SMTP=GLOB(0x84ac258)>>> EHLO localhost.localdomain
MIME::Lite::SMTP=GLOB(0x84ac258)<<< 250-smpt.xxx.com Hello [xx.xx.xx.xx], pleased to meet you
MIME::Lite::SMTP=GLOB(0x84ac258)<<< 250-ENHANCEDSTATUSCODES
MIME::Lite::SMTP=GLOB(0x84ac258)<<< 250-PIPELINING
MIME::Lite::SMTP=GLOB(0x84ac258)<<< 250-8BITMIME
MIME::Lite::SMTP=GLOB(0x84ac258)<<< 250-SIZE
MIME::Lite::SMTP=GLOB(0x84ac258)<<< 250-DSN
MIME::Lite::SMTP=GLOB(0x84ac258)<<< 250-ETRN
MIME::Lite::SMTP=GLOB(0x84ac258)<<< 250-DELIVERBY
MIME::Lite::SMTP=GLOB(0x84ac258)<<< 250 HELP
MIME::Lite::SMTP=GLOB(0x84ac258)>>> MAIL FROM:<[email protected]>
MIME::Lite::SMTP=GLOB(0x84ac258)<<< 250 2.1.0 <[email protected]>... Sender ok
MIME::Lite::SMTP=GLOB(0x84ac258)>>> RCPT TO:<[email protected]>
[Wed Sep 15 16:41:22 2010] myemailscript.cgi: MIME::Lite::SMTP=GLOB(0x84ac258): Timeout at /usr/local/share/perl/5.10.0/MIME/Lite.pm line 2889
MIME::Lite::SMTP=GLOB(0x84ac258)>>> RCPT TO:<[email protected]>
[Wed Sep 15 16:41:52 2010] myemailscript.cgi: MIME::Lite::SMTP=GLOB(0x84ac258): Timeout at /usr/local/share/perl/5.10.0/MIME/Lite.pm line 2889
MIME::Lite::SMTP=GLOB(0x84ac258)>>> RCPT TO:<[email protected]>
[Wed Sep 15 16:42:22 2010] myemailscript.cgi: MIME::Lite::SMTP=GLOB(0x84ac258): Timeout at /usr/local/share/perl/5.10.0/MIME/Lite.pm line 2889
MIME::Lite::SMTP=GLOB(0x84ac258)>>> RCPT TO:<[email protected]>
MIME::Lite::SMTP=GLOB(0x84ac258)<<< 250 2.1.5 <[email protected]>... Recipient ok
MIME::Lite::SMTP=GLOB(0x84ac258)>>> DATA
MIME::Lite::SMTP=GLOB(0x84ac258)<<< 250 2.1.5 <[email protected]>... Recipient ok
Je vois que Debug est activé pendant 'MIME :: Lite-> send'. Pouvez-vous poster ce journal? – cjm
'use strict; utilisez les avertissements; ' – Ether
curieux si c'est seulement parce que vous incluez le' body' et non le 'html' /' head', ou si cela compte? – vol7ron