in reply to Re^5: e-mail fails with address that is not a fully qualified domain
in thread e-mail fails with address that is not a fully qualified domain

I have now tried using Net::SMTP but only with partial success.
Below is the Perl scritp and the output that I get.
I understand from the output that all should be OK. However the e-mail is not arriving at it to address. I have tried a number of to addresses and even looked in the spam folder when I sent it to myself.
I used the following web sites for help
http://search.cpan.org/~shay/libnet-3.06/lib/Net/SMTP.pm
http://quark.humbug.org.au/publications/perl/perlsmtpintro.html

Can anyone suggest how I can make these e-mails actually arrive and/or find out what is happening to them?
# test e-mail june 2015 use strict; use warnings; use Net::SMTP; use Authen::SASL; my ($host_em, $to_em, $cc_em, $from_em, $subj_em, $data_em, %attach_em +, $res_em, $err_em, $smtp); my ($full_host_name, $password_em, $username); my ($banner, $domain); $host_em = 'mail.btinternet.com'; $full_host_name = (gethostbyname $host_em)[0]; print "full_host_name <$full_host_name>\n"; $from_em = 'valid e-mail address'; $cc_em = 'valid e-mail address'; $to_em = 'valid e-mail address'; $password_em = 'password for $from_em'; $subj_em = 'Test e-mail'; $data_em = 'Please let me know if this arrives'; $smtp = Net::SMTP->new($host_em, Debug => 1); print "\nsmtp <$smtp>\n"; $smtp->auth ($from_em, $password_em); print "\nbefore ->mail\n"; $smtp->mail ($from_em); print "\nbefore ->to\n"; $smtp->to($to_em); print "\nbefore ->data\n"; $smtp->data; $smtp->datasend("From: " . $from_em); $smtp->datasend("To: " . $to_em); $smtp->datasend('Subject: This is a test'); $smtp->datasend("\n"); $smtp->datasend("$data_em"); $smtp->dataend; $smtp->quit; $banner = $smtp->banner; print "\nbanner <$banner>\n"; $domain = $smtp->domain; print "\ndomain <$domain>\n";


full_host_name <mail.btinternet.bt.lon5.cpcloud.co.uk>
Net::SMTP>>> Net::SMTP(2.31)
Net::SMTP>>> Net::Cmd(2.29)
Net::SMTP>>> Exporter(5.64_01)
Net::SMTP>>> IO::Socket::INET(1.31)
Net::SMTP>>> IO::Socket(1.31)
Net::SMTP>>> IO::Handle(1.28)
Net::SMTP=GLOB(0x183e988)<<< 220 rgout02.bt.lon5.cpcloud.co.uk ESMTP Service ready
Net::SMTP=GLOB(0x183e988)>>> EHLO localhost.localdomain
Net::SMTP=GLOB(0x183e988)<<< 250-rgout02.bt.lon5.cpcloud.co. uk
Net::SMTP=GLOB(0x183e988)<<< 250-DSN
Net::SMTP=GLOB(0x183e988)<<< 250-8BITMIM
E Net::SMTP=GLOB(0x183e988)<<< 250-PIPELINING
Net::SMTP=GLOB(0x183e988)<<< 250-AUTH=LOGIN
Net::SMTP=GLOB(0x183e988)<<< 250-AUTH LOGIN PLAIN
Net::SMTP=GLOB(0x183e988)<<< 250-DELIVERBY 300
Net::SMTP=GLOB(0x183e988)<<< 250 SIZE 41943040
smtp <Net::SMTP=GLOB(0x183e988)>
Net::SMTP=GLOB(0x183e988)>>> AUTH LOGIN
Net::SMTP=GLOB(0x183e988)<<< 334 VXNlcm5hbWU6
Net::SMTP=GLOB(0x183e988)>>> aGVucnkubWVycnl3ZWF0aGVyQGJ0aW50ZXJuZXQuY29t
Net::SMTP=GLOB(0x183e988)<<< 334 UGFzc3dvcmQ6
Net::SMTP=GLOB(0x183e988)>>> Z2VvMTkwMWxlYWNoYQ==
Net::SMTP=GLOB(0x183e988)<<< 235 LOGIN authentication successful
before ->mail
Net::SMTP=GLOB(0x183e988)>>> MAIL FROM:<$from_em>
Net::SMTP=GLOB(0x183e988)<<< 250 MAIL FROM:<$from_em> OK before ->to Net::SMTP=GLOB(0x183e988)>>> RCPT TO:<$to_em> Net::SMTP=GLOB(0x183e988)<<< 250 RCPT TO:<$to_em> OK before ->data
Net::SMTP=GLOB(0x183e988)>>> DATA
Net::SMTP=GLOB(0x183e988)<<< 354 Start mail input; end with <CRLF>.<CRLF>
Net::SMTP=GLOB(0x183e988)>>> From: $from_em
Net::SMTP=GLOB(0x183e988)>>> To: $to_em
Net::SMTP=GLOB(0x183e988)>>> Subject: This is a test
Net::SMTP=GLOB(0x183e988)>>> Please let me know if this arrives
Net::SMTP=GLOB(0x183e988)>>> .
Net::SMTP=GLOB(0x183e988)<<< 250 <556D7AAA00016CE0> Mail accepted
Net::SMTP=GLOB(0x183e988)>>> QUIT
Net::SMTP=GLOB(0x183e988)<<< 221 rgout02.bt.lon5.cpcloud.co.uk QUIT

banner <rgout02.bt.lon5.cpcloud.co.uk ESMTP Service ready
>
domain <rgout02.bt.lon5.cpcloud.co.uk>
  • Comment on Re^6: e-mail fails with address that is not a fully qualified domain
  • Download Code

Replies are listed 'Best First'.
Re^7: e-mail fails with address that is not a fully qualified domain
by Anonymous Monk on Jun 02, 2015 at 10:46 UTC

    Can anyone suggest how I can make these e-mails actually arrive and/or find out what is happening to them?

    Contact the administrator

    When a SMPT server tells you, you've authenticated, your mail has been sent ... your only choice is to believe it

      I can see your very reasonable point?
      I see you suggest I talk to the administrator but I am not sure who this is this particular case.
      I get my broadband services from Virgin Media but use an e-mail account from bt (British Telecoms). Therefore does this make it bt that I should talk to? Using Thunderbird with the from address I am using does work OK.

        You would need to talk to the administrator of the server to which you submitted the mail for sending. If it is then forwarded to another server for delivery, you'd want to speak to that administrator as well.

        A big part of software development is understanding with what your programs interact. In this case, not only do you have a human user but also the SMTP protocol and mail servers. I suggest becoming more familiar with how SMTP email works. The domain knowledge is invaluable to someone writing code for the domain.