Mail Using SMTP Problem


#1

Hi,

Please help me to resolve the following issue. When i am running

following script after filling all required parameters like mail ID,
SMTP server and port number etc. I am getting follwoing errors, please
tell me the reason of errors.

msgstr = <<END_OF_MESSAGE
From: Your N. <removed_email_address@domain.invalid>
To: Destination Address <removed_email_address@domain.invalid>
Subject: test message
Date: Sat, 23 Jun 2001 16:26:43 +0900
Message-Id: <removed_email_address@domain.invalid>

This is a test message.
END_OF_MESSAGE

require 'net/smtp'
Net::SMTP.start('your.smtp.server', 25) do |smtp|
  smtp.send_message msgstr,
                    'removed_email_address@domain.invalid',
                    'removed_email_address@domain.invalid'
end

Errors:

testmail.rb:16: can’t find string “END_OF_MESSAGE” anywhere before EOF
testmail.rb:1: syntax error, unexpected $end, expecting tSTRING_CONTENT
or tSTRI
NG_DBEG or tSTRING_DVAR or tSTRING_END

Regards:
Dhiraj


#2

Dhiraj G. wrote:

msgstr = <<END_OF_MESSAGE
From: Your N. <removed_email_address@domain.invalid>

This is a test message.
END_OF_MESSAGE

testmail.rb:16: can’t find string “END_OF_MESSAGE” anywhere before EOF
testmail.rb:1: syntax error, unexpected $end, expecting tSTRING_CONTENT
or tSTRI
NG_DBEG or tSTRING_DVAR or tSTRING_END

Remove the spaces from in front of the second ‘END_OF_MESSAGE’. The end
of a heredoc string has to be right at the start of the line.

Alternatively at the start of the heredoc do:
msgstr = <<-END_OF_MESSAGE
which allows the end of the heredoc to be indented.

best,
Dan


#3

Daniel L. wrote:

Dhiraj G. wrote:

msgstr = <<END_OF_MESSAGE
From: Your N. <removed_email_address@domain.invalid>

This is a test message.
END_OF_MESSAGE

testmail.rb:16: can’t find string “END_OF_MESSAGE” anywhere before EOF
testmail.rb:1: syntax error, unexpected $end, expecting tSTRING_CONTENT
or tSTRI
NG_DBEG or tSTRING_DVAR or tSTRING_END

Remove the spaces from in front of the second ‘END_OF_MESSAGE’. The end
of a heredoc string has to be right at the start of the line.

Alternatively at the start of the heredoc do:
msgstr = <<-END_OF_MESSAGE
which allows the end of the heredoc to be indented.

best,
Dan

Thanks Dan, it is working.

Regards:
Dhiraj