我正在构建一个将测试消息发送到另一封电子邮件的应用程序,该程序执行时没有错误,但是当我检查我的电子邮件时没有任何新电子邮件时,请查看我的代码:
my $smtpserver = 'smtp.vix.terra.com.br';
my $smtpuser = 'nathanpc';
my $fromemail = 'nathanpc@terra.com.br';
my $smtp = Net::SMTP-> new($smtpserver, Timeout => 120);
$smtp-> mail($smtpuser);
$smtp-> to('eeepc904@gmail.com');
$smtp-> data();
$smtp-> datasend("To: eeepc904\@gmail.com\n");
$smtp-> datasend("From: nathanpc\@terra.com.br\n");
$smtp-> datasend("\n");
$smtp-> datasend("test\n");
$smtp-> dataend();
$smtp-> quit;
答案 0 :(得分:5)
仅仅因为你没有收到电子邮件并不意味着没有发送电子邮件。它可能尚未交付,或者已经交付,过滤或许多其他事情。
电子邮件中可能出现很多很多问题。
Debug
?new
选项?
在此之前,您可以做很多事情来帮助自己,并且依靠Stackoverflow来解决最基本的问题并不能让您有机会发展自己的技能。
#!perl use warnings; use strict; use Net::SMTP; my $smtpserver = 'smtp.vix.terra.com.br'; my $smtpuser = 'nathanpc'; my $fromemail = 'nathanpc@terra.com.br'; my $smtp = Net::SMTP->new($smtpserver, Timeout => 10, Debug => 1); die "Could not connect to server!\n" unless $smtp; $smtp->mail($smtpuser); $smtp->to('eeepc904@gmail.com'); $smtp->data(); $smtp->datasend("To: eeepc904\@gmail.com\n"); $smtp->datasend("From: $fromemail\n"); $smtp->datasend("\n"); $smtp->datasend("test\n"); $smtp->dataend(); $smtp->quit;
答案 1 :(得分:0)
我认为这应该没问题
use Net::SMTP; # includes NET:SMTP Moduls
$mailServer = "mail.server.com"; # Name of SMTP Servers.
$nachricht = "nachricht.txt"; # Message
$absender = "absender\@hier.com"; # Sender Email Adress.
$betreff = "Neue Nachricht"; # Subject
$empfaenger = "empfaenger\@dort.com"; # reciver Email Adress
$smtp = Net::SMTP->new($mailServer); # Create New SMTP Objekt.
# Parameter is the Name of SMTP
# Server.
$smtp->mail($absender);
$smtp->to($empfaenger);
.
$smtp->data();
$smtp->datasend("Subject: $betreff\n");
$smtp->datasend("To: $empfaenger\n");
$smtp->datasend("\n");
close MESSAGE;
$smtp->dataend();
$smtp->quit;
答案 2 :(得分:0)
只需嗅探流量即可查看是否有任何SMTP流量(默认端口为25)。如果你看到它并且它与你发送的内容相符(没有错误),那么就你的代码而言你就没问题了。您的代码不能对成功发送后发生的事件负责(250 Ok:排队......)。
答案 3 :(得分:0)
请致电:
$smtp->debug(1);
创建smtp对象后,将整个会话转换为控制台。