Forum: Ruby Mail Using SMTP Problem

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
A00307e23f269e98a82641e1e3adcb2f?d=identicon&s=25 Dhiraj Girdhar (dgirdhar)
on 2007-06-14 08:54
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 Name <your@mail.address>
    To: Destination Address <someone@example.com>
    Subject: test message
    Date: Sat, 23 Jun 2001 16:26:43 +0900
    Message-Id: <unique.message.id.string@example.com>

    This is a test message.
    END_OF_MESSAGE

    require 'net/smtp'
    Net::SMTP.start('your.smtp.server', 25) do |smtp|
      smtp.send_message msgstr,
                        'your@mail.address',
                        'his_addess@example.com'
    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
0158871402c1ecfa57952e8a379cfd10?d=identicon&s=25 Daniel Lucraft (lucraft)
on 2007-06-14 09:05
Dhiraj Girdhar wrote:
>
>     msgstr = <<END_OF_MESSAGE
>     From: Your Name <your@mail.address>
>
>     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
A00307e23f269e98a82641e1e3adcb2f?d=identicon&s=25 Dhiraj Girdhar (dgirdhar)
on 2007-06-14 09:08
Daniel Lucraft wrote:
> Dhiraj Girdhar wrote:
>>
>>     msgstr = <<END_OF_MESSAGE
>>     From: Your Name <your@mail.address>
>>
>>     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
This topic is locked and can not be replied to.