Subscription reports - mail send failure

Hello All,
We have SCCM 2012 SP1 and SQL Server 2012 installed on the same box. The SQL reporting service runs with an domain account.
Unfortunately any reports with a subscription to an e-mail address are not sent. The error msg is "Failure sending mail. - The specified string is not in the form required for an e-mail address. Mail will not be sent"
I don't understand which string is meant. I don't see any error in the event log.
Could you please help?
Thanks,
Edy
Edy from Switzerland

You should have a look at the log file created in SQL reporting services, it might contain more detailed information. It could be issue with the SMPT port. I ran into this issue a few years ago -
http://blog.coretech.dk/kea/configuring-sql-reportings-services-mail-subscriptions-with-configuration-manager/ Might not be the same issue but maybe you can use the info to start the troubleshooting phase.
Kent Agerlund | My blogs: blog.coretech.dk/kea and
SCUG.dk/ | Twitter:
@Agerlund | Linkedin: Kent Agerlund |
Mastering ConfigMgr 2012 The Fundamentals

Similar Messages

  • Intermittent mail sending failure - net_io_connectionclosed

    I am using:
    SQL Server 2012 (Service Pack 2 - Business Intelligence Edition)  11.0.5058
    .Net Version 4.5.1 (378675)
    Windows Server 2012 R2 Standard
    Exchange Server 2010 R2 (Hosted on a seperate server)
    I am getting the following error in the Reporting Services log intermittently for reports:
    emailextension!WindowsService_15!7cc0!10/16/2014-06:05:33:: e ERROR: Error sending email. Exception: System.Net.Mail.SmtpException: Failure sending mail. ---> System.IO.IOException: Unable to read data from the transport connection: net_io_connectionclosed.
       at System.Net.Mail.SmtpReplyReaderFactory.ProcessRead(Byte[] buffer, Int32 offset, Int32 read, Boolean readLine)
       at System.Net.Mail.SmtpReplyReaderFactory.ReadLines(SmtpReplyReader caller, Boolean oneLine)
       at System.Net.Mail.SmtpReplyReaderFactory.ReadLine(SmtpReplyReader caller)
       at System.Net.Mail.CheckCommand.Send(SmtpConnection conn, String& response)
       at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)
       at System.Net.Mail.SmtpClient.Send(MailMessage message)
       --- End of inner exception stack trace ---
       at System.Net.Mail.SmtpClient.Send(MailMessage message)
       at Microsoft.ReportingServices.EmailDeliveryProvider.EmailProvider.Deliver(Notification notification)
    notification!WindowsService_15!7cc0!10/16/2014-06:05:33:: i INFO: Notification d4b91fc4-0cc5-464a-a927-af8c24e4fcc8 completed.  Success: True, Status: Failure sending mail: Failure sending mail., DeliveryExtension: Report Server Email, Report: Missed NDD
    Despatch, Attempt 0
    They try to send the mail via an exchange server that is hosted on a separate server, the report server email is set up as:
    <Extension Name="Report Server Email" Type="Microsoft.ReportingServices.EmailDeliveryProvider.EmailProvider,ReportingServicesEmailDeliveryProvider">
                    <MaxRetries>3</MaxRetries>
                    <SecondsBeforeRetry>900</SecondsBeforeRetry>
                    <Configuration>
                        <RSEmailDPConfiguration>
                            <SMTPServer>****.****.****</SMTPServer>
                            <SMTPServerPort>
                            </SMTPServerPort>
                            <SMTPAccountName>
                            </SMTPAccountName>
                            <SMTPConnectionTimeout>
                            </SMTPConnectionTimeout>
                            <SMTPServerPickupDirectory>
                            </SMTPServerPickupDirectory>
                            <SMTPUseSSL>
                            </SMTPUseSSL>
                            <SendUsing>2</SendUsing>
                            <SMTPAuthenticate>
                            </SMTPAuthenticate>
                            <From>****.****@****.****</From>
                            <EmbeddedRenderFormats>
                                <RenderingExtension>MHTML</RenderingExtension>
                            </EmbeddedRenderFormats>
                            <PrivilegedUserRenderFormats>
                            </PrivilegedUserRenderFormats>
                            <ExcludedRenderFormats>
                                <RenderingExtension>HTMLOWC</RenderingExtension>
                                <RenderingExtension>NULL</RenderingExtension>
                                <RenderingExtension>RGDI</RenderingExtension>
                            </ExcludedRenderFormats>
                            <SendEmailToUserAlias>True</SendEmailToUserAlias>
                            <DefaultHostName>
                            </DefaultHostName>
                            <PermittedHosts>
                            </PermittedHosts>
                        </RSEmailDPConfiguration>
                    </Configuration>
                </Extension>
    I have starred out some details for anonymity. I have other servers with a matching configuration file as above (although on a 2008 version of SSRS) that never have this problem.
    The issue is intermittent and doesn't affect one specific report and on some occasions the retries work however quite often they don't work at all. I have had the network guys here monitor the port to see if the mail is even leaving the server and apparently
    the failed attempts do not register any data in wire shark. I don't believe this to be a size issue with the reports as they aren't supposed to deviate much.
    Any help would be much appreciated.
    Dave T

    Hi behavedave,
    According to your description, you have data-driven subscription failure randomly. Right?
    In this scenario, there's nothing wrong on your subscription configuration. Since the issue happens randomly, we can hardly to figure out reason directly. Here are two articles about subscription monitoring and troubleshooting. Please refer to links below:
    Monitoring and Troubleshooting Subscriptions
    Troubleshooting Subscriptions: Part II, Using the Reporting Services Trace Log File
    If you have any question, please feel free to ask.
    Best Regards,
    Simon Hou 

  • Mail sending failure

    Hello friends,
    we have developed one service to send mail through SMTP settings.  My client is using Office 365 email Id. 
    For Example:
    username: [email protected] , password: XXXXXX
    From email: [email protected]
    ssl=true
    hostname: smtp.office365.com
    In above case,Mail successfully sent.
    But as per below settings, we are getting failure in mail sending:
    username: [email protected] , password: XXXXXX
    From email: [email protected]
    ssl=true
    hostname: smtp.office365.com
    Error: "Mailbox unavailable. The server response was: 5.7.1 Client does not have permissions to send as this sender"
    In above case,we have used different from Name and account email id.  
    Please give me some solution to solve above issue.
    Thanks,
    Sonal Patel

    Hi,
    Thanks for your question. You might need to make sure if SMTP server accept the specific account to access or SMTP server accept the anonymous access.
    Below links might help:
    http://stackoverflow.com/questions/12081159/5-7-1-client-does-not-have-permission-error-while-sending-email-from-code
    http://serverfault.com/questions/238095/mailbox-unavailable-client-does-not-have-permissions-to-send-as-this-sender-o
    (Please Note: Since above websites are not hosted by Microsoft, the links may change without notice. Microsoft does not guarantee the accuracy of these information.)
    Also, This is the forum to discuss questions and feedback for Microsoft Office clients. There is not so much about server/host aspects here. You might need to post in the forum for Office 365 community:
    http://community.office365.com/en-us/f/default.aspx
    The reason why we recommend posting appropriately is you will get the most qualified pool of respondents, and other partners who read the forums regularly can either share their knowledge or learn from your interaction with us. Thank you for your understanding.
    Thanks,
    Ethan Hua CHN
    TechNet Community Support

  • Bug report: Mail sends messages with empty bodies

    Over the last year, I have experienced a particularly irritating bug in Mail.app at least a dozen times. I finally have a good idea as to what causes it.
    The problem involves long email messages (often with attachments) that end up being sent with blank bodies (and no attachments). Even the copy in the "Sent" folder ends up blank, and several minutes or hours of work vanishes into thin air, not to be seen ever again.
    I finally realized that this bug only occurs when sending mail through our work SMTP server while outside the work firewall, and only as a result of a certain sequence of events. Here is what happens:
    When we connect to our work SMTP server from outside the local network and without going through the VPN, the SMTP server requires password authentication. If the current SMTP selection in Mail.app is the one that does not require authentication, the SMTP server rejects the message. At that point, Mail.app opens the email I am trying to send and brings up a modal dialog that says "Cannot send message using the server xxx.xxx -- The server response was: xxx@xxx relaying prohibited. You should authenticate first." The dialog also presents a drop-down list of SMTP server choices. I choose the password-authenticated version of the server and then click on "Use Selected Server" to send the message.
    This works almost all the time, but on occasion it ends up sending a blank message! If I have a long email, particularly with attachments such as PDFs that are rendered in the body of the message, it takes a few seconds for the mail message to be rendered underneath the modal dialog box. Since I am used to this STMP rejection behavior, sometimes I am too fast to choose another STMP server from the list and click on "Use Selected Server" before the mail message is rendered on screen! The result, invariably, is a blank email message that gets sent.
    I guess what is happening is that when the STMP server rejects the message and hands it back to Mail.app, the message gets copied into a buffer in order to be displayed on screen. Selecting another server and resending it immediately (before the message is copied into the buffer completely) causes the message body to get trashed.
    I hope that this description is adequate for Apple QA folks to replicate and isolate the problem (and hopefully fix it). One solution (although not the most elegant one) would be to disable the "Use Selected Server" action until the message is copied into the buffer and rendered on screen.

    This could be related to another bug reported here recently:
    E-mail looses all images if mail server doesn't accept outgoing email...
    You cannot count on Apple looking into this or even noticing it if you report it here, so I suggest you the same I suggested in the other thread, i.e. report it in one of the following places:
    http://www.apple.com/macosx/feedback/
    http://developer.apple.com/bugreporter/

  • Mail send failure caught in endless "resend" loop

    So, I tried to send an email out via my iPhone and it failed to send. Now that email seems to be caught in an endless loop of "resend" attempts, all to no avail. Any ideas on how I might remedy the situation?

    Delete the account on your iPhone then go to webmail for your email account and make sure your Drafts and Outbox folders are empty, then recreate the account on your iPhone.

  • Ipod Imessage send failure

    For the past 3 days my IPod has reported "message send failure" when texting any other IPhone or IPod user.  These messages are, however, being delievered.  The recipients reply to me, however they also have their texts flagged as "message send failure".  They do not have this problem with any other texting, therefore I believe my IPod is the problem.  This is new.  3 days ago I downloaded IMessage for my Mac also.  Could this be interfering somehow? How can I get these messages to stop being flagged?

    Hi,
    Check your router settings and connections to see if you are on WiFi. You need a WiFi connection to use iMessage. Tell me if this works.
    xxmitchxx90

  • Random mail arrival failure. SMTP log reports arrival, user never gets it

    Our 10.5.4 Mail server has become progressively less and less reliable over a period of months. I can reproduce repeatable (but inconsistent) instances of mails sent to us and failing to arrive. The weirdness even extends to emails sent from outside to multiple recipients on our server *in the same email*, and where some of the recipients get it and the others don't (while the non-recipients are randomly receiving other mails OK). Or, an external sender sending an email while I'm on the phone with him, it failing to arrive (and never does), and then a resend half an hour later arrives immediately.
    Needless to say, confidence in our mail server is plummeting.
    The OS-X Server mail log *actually records a mail arrival event* even when the user never gets the email, thus:
    Aug 6 13:15:42 dreadnought postfix/smtpd[14462]: connect from sonar.wycliffe.nsw.edu.au[192.168.9.100]
    Aug 6 13:15:42 dreadnought postfix/smtpd[14462]: 39D248C515F: client=sonar.wycliffe.nsw.edu.au[192.168.9.100]
    Aug 6 13:15:42 dreadnought postfix/cleanup[14464]: 39D248C515F: message-id=<[email protected].l ocal>
    Aug 6 13:15:42 dreadnought postfix/qmgr[100]: 39D248C515F: from=<[email protected]>, size=29520, nrcpt=1 (queue active)
    Aug 6 13:15:42 dreadnought postfix/smtpd[14462]: disconnect from sonar.wycliffe.nsw.edu.au[192.168.9.100]
    Aug 6 13:15:43 dreadnought postfix/smtpd[14471]: connect from localhost[127.0.0.1]
    Aug 6 13:15:43 dreadnought postfix/smtpd[14471]: 0BBFE8C5170: client=localhost[127.0.0.1]
    Aug 6 13:15:43 dreadnought postfix/cleanup[14465]: 0BBFE8C5170: message-id=<[email protected].l ocal>
    Aug 6 13:15:43 dreadnought postfix/qmgr[100]: 0BBFE8C5170: from=<[email protected]>, size=29969, nrcpt=1 (queue active)
    Aug 6 13:15:43 dreadnought postfix/smtpd[14471]: disconnect from localhost[127.0.0.1]
    Aug 6 13:15:43 dreadnought postfix/smtp[14466]: 39D248C515F: to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=0.85, delays=0.01/0/0.01/0.83, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 0BBFE8C5170)
    Aug 6 13:15:43 dreadnought postfix/qmgr[100]: 39D248C515F: removed
    Aug 6 13:15:43 dreadnought postfix/pipe[14473]: 0BBFE8C5170: to=<[email protected]>, relay=cyrus, delay=0.23, delays=0.01/0/0/0.21, dsn=2.0.0, status=sent (delivered via cyrus service)
    Aug 6 13:15:43 dreadnought postfix/qmgr[100]: 0BBFE8C5170: removed
    ...and the upstream mail filter (sonar in this case, our virus and spam filter) corroborates that an email arrived as well. But, as I said, the user (me) +never got this email+. Numerous other users report the same experience. Some mails arriving at our mail server simply never get put into inboxes and disappear. Poof.
    The only lead I have is multiple instances of the following message in the console at (roughly) the same time as the mail arrival failure:
    *6/08/08 1:15:00 PM com.apple.launchd[1] (0x11a220.cron[14553]) Could not setup Mach task special port 9: (os/kern) no access.*
    I have taken to rebooting the server twice daily to reduce the frequency of these occurrences. The machine is a G5 XServe hosting 700 accounts in a School.

    In the log example quoted above, ignore all the http:// references. Apple's discussions software is assuming the square brackets in the log mean "insert URL"

  • How to run 2 reports to send 1 PDF e-mail attachment instead of 2 e-mails.

    I used 9i Reports to create 2 reports in a PDF format. I run these reports from a 9i form using the web.show_document command. XML is used to send the 2 e-mails with the reports.
    Is there a way I can combine the running of the reports to make one PDF to created 1 e-mail attachment or run the reports at the same time and attach 2 PDF files to 1 e-mail.
    I have no problems running 1 report and sending 1 e-mail attacment!
    This is example of the XML used in creating the e-mail:
    - <destinations>
    - <foreach>
    - <file id="Test" name="REPORT_1.pdf" format="pdf" instance="XXXX">
    <include src="report" />
    </file>
    </foreach>
    - <!-- Send a mail with an attachment
    -->
    - <mail id="ex1" to="&DESNAME" from="&DESNAME" subject="&DESNAME;*;&p_postal_number: was submitted for
    approval on &p_postal_date">
    <body srcType="text">This is to notify you of a new submission that requires an approval before being
    sent to out. Please use the URL link below to review the information as soon as possible.
    https://xxxx.aaaa.sss.com:234/web_html/static.html AAAA Administrator</body>
    - <attach format="pdf" name="Report_1&.pdf" srcType="report">
    <include src="mainSection" />
    </attach>
    </mail>
    </destinations>

    You can use iText to combine two PDF files into one.

  • Problem in executing report for sending mail with form as attachment

    Hi
    i created a form in SFP and creted a report for sending it as an attachment via email.When it execute the report an error messgae is displyed saying: Unable to load form for language vector E.
    Please suggest.

    Hi,
    Do you use CL_BCS class to send your forms ?
    Did you pass the forms as binary file to the mail ?
    I can give you sample code where all exception are process and you can see the exact error .
    Best regards.

  • Script spol to mail , and report which sends output to spools

    Hi All,
    Please give me
    script spol to mail , and report which sends output to spool.
    thaks,
    babu

    Hi,
    Check the below code:
    scripts through email:
    *& Report  ZRICHA_OTF_PDF
    report  zricha_otf_pdf
        message-id zz.
    CONSTANTS                                                           *
    constants : c_x(1)      type c value 'X',      " For constant value
                c_otf(3)    type c value 'OTF',    " For format
                c_u(1)      type c value 'U'.      " Mail Option
    VARIABLES                                                           *
    data : v_rqident  type tsp01-rqident,  " For Spool Number
           v_rqclient type tsp01-rqclient, " For Client
           v_rqo1name type tsp01-rqo1name, " For Object name
           v_spool    type tsp01-rqident,  " For Spool Number
           v_spool1   type tsp01-rqident.  " For Spool Number
    FLAGS                                                               *
    data : f_spool type c.
      INTERNAL TABLES                                                    *
    Internal table for sending mails
    data: it_pdf          like tline      occurs 10 with header line,
          it_xi_pdf       like tline      occurs 0  with header line,
          it_html         like solisti1   occurs 0  with header line,
          it_xi_temp      like bapiqcmime occurs 0  with header line,
          it_xi_mime(255) type c          occurs 0  with header line.
    For sending mail
    data: it_objpack like sopcklsti1 occurs 2 with header line.
    Internal table for Single List with Column Length 255
    data : it_objbin like solisti1 occurs 10 with header line.
    Internal table for Single List with Column Length 255
    data : it_objtxt like solisti1 occurs 10 with header line.
    Internal table for Structure of the API Recipient List
    data : it_reclist like somlreci1 occurs 5 with header line.
    Structure of the API Recipient List
    data: x_doc_chng like sodocchgi1.
    Internal table for storing the variants
    data : begin of it_variant1 occurs 0,
            variant like varid-variant,
           end   of it_variant1.
    Internal table to store variants for the programs
    data: it_variant2 like it_variant1 occurs 0 with header line.
    Internal table for storing the selected values
    data it_return type ddshretval occurs 0 with header line.
    Internal table for storing the mail-ids
    data : begin of it_mailid occurs 0,
            kokrs like csks-kokrs,
            kostl like csks-kostl,
            datbi like csks-datbi,
            telx1 like csks-telx1,
           end   of it_mailid.
    Internal table for storing the mail-ids
    data : it_mailid1 like it_mailid occurs 0 with header line.
      SELECTION SCREEN                                                   *
    data : v_char type char50.
    selection-screen begin of block b1 with frame title text-001.
    select-options: s_email for v_char  no intervals
                    lower case
                    no-display.
    select-options: s_email1 for v_char  no intervals
                    lower case
                    no-display.
    selection-screen end of block b1.
    selection-screen begin of block a1 with frame title text-028.
    selection-screen begin of line.
    parameters : p_c1 as checkbox.
    selection-screen comment 3(66) text-026 for field p_c1.
    selection-screen end of line.
    parameters : p_set like tsp1d-papart matchcode object zh_tsp1d.
    selection-screen skip 1.
    parameters : p_vara1 type rs38m-selset.
    selection-screen end of block a1.
    selection-screen begin of block a2 with frame title text-029.
    selection-screen begin of line.
    parameters : p_c2 as checkbox.
    selection-screen comment 3(56) text-027 for field p_c1.
    selection-screen end of line.
    parameters : p_set1 like tsp1d-papart matchcode object zh_tsp1d.
    selection-screen skip 1.
    parameters : p_vara2 type rs38m-selset.
    selection-screen end of block a2.
    AT SELECTION SCREEN ON VALUE REQUEST
    at selection-screen on value-request for p_vara1.
    For fetching the variants available for the program
      perform fetch_variants.
    at selection-screen on value-request for p_vara2.
    For fetching the variants available for the program
      perform fetch_variants1.
    AT SELECTION SCREEN
    at selection-screen.
    For Validation
      perform validation.
    START OF SELECTION                                                  *
    start-of-selection.
    To get the output data and mail
      perform fetch_data.
    END OF SELECTION                                                    *
    end-of-selection.
      if f_spool = c_x.
        message e000 with 'Spool Not Generated'(060).
      endif.
    *&      Form  fetch_data
          To get the output data and mail
    form fetch_data .
    To send the output to spool
      perform generate_spool.
    endform.                    " fetch_data
    *&      Form  generate_spool
          To send the output to spool
    form generate_spool .
      data: l_params like pri_params,
            l_days(1)  type n value 2,
            l_count(3) type n value 1,
            l_valid    type c,
            l_valid1   type c,
            l_params1  like pri_params.
      data: l_device type usr01-spld.
    *Get the printer name for the user
      select single spld into l_device from usr01 where bname = sy-uname.
      if l_device is initial.
        l_device = 'LOCL'.
      endif.
    For report-1
      if p_c1 = 'X'.
    Setting the print parameters
        call function 'GET_PRINT_PARAMETERS'
          exporting
            destination    = l_device
            copies         = l_count
            list_name      = sy-uname
            list_text      = 'SUBMIT ... TO SAP-SPOOL'(008)
            release        = c_x
            new_list_id    = c_x
            expiration     = l_days
           LINE_SIZE      = 255
           LINE_COUNT     = 65
            layout         = p_set
            sap_cover_page = space
            cover_page     = space
            receiver       = 'SAP*'(010)
            department     = 'System'(011)
            no_dialog      = c_x
          importing
            out_parameters = l_params
            valid          = l_valid.
        if l_valid <> space.
          clear v_spool.
    Fetch the spool number b4 submit
          perform fetch_recent_spool using v_spool.
    Submitting the program to spool
          submit rkaep000 to sap-spool
            using selection-set p_vara1
            spool parameters l_params
            without spool dynpro
            and return.
          clear v_spool1.
    Fetch the spool number after submit
          perform fetch_recent_spool using v_spool1.
          if v_spool = v_spool1.
            f_spool = c_x.
            if p_c2 is initial.
              stop.
            endif.
          else.
    Checking the format ( ABAP/OTF)
            perform format_check tables s_email.
          endif.
        else.
          message e000 with 'Problem in print settings'(003).
          stop.
        endif.
      endif.
    For Report-2
      if p_c2 = 'X'.
    Setting the print parameters
        call function 'GET_PRINT_PARAMETERS'
          exporting
            destination    = l_device
            copies         = l_count
            list_name      = sy-uname
            list_text      = 'SUBMIT ... TO SAP-SPOOL'(008)
            release        = c_x
            new_list_id    = c_x
            expiration     = l_days
           LINE_SIZE      = 200
           LINE_COUNT     = 65
            layout         = p_set1
            sap_cover_page = space
            cover_page     = space
            receiver       = 'SAP*'(010)
            department     = 'System'(011)
            no_dialog      = c_x
          importing
            out_parameters = l_params1
            valid          = l_valid1.
        if l_valid1 <> space.
          clear v_spool.
    Fetch the spool number b4 submit
          perform fetch_recent_spool using v_spool.
    Submitting the program to spool
          submit gp3diehxy88snfj0391v7kf9ek7050 to sap-spool
            using selection-set p_vara2
            spool parameters l_params1
            without spool dynpro
            and return.
          clear v_spool1.
    Fetch the spool number after submit
          perform fetch_recent_spool using v_spool1.
          if v_spool = v_spool1.
            message e000 with 'Spool Not Generated'(060).
            stop.
          endif.
    Checking the format ( ABAP/OTF)
          perform format_check tables s_email1.
        else.
          message e000 with 'Problem in print settings'(003).
          stop.
        endif.
      endif.
    endform.                    " generate_spool
    *&      Form  fetch_recent_spool
          Fetch the recent spool number generated
    form fetch_recent_spool using p_v_spool type tsp01-rqident .
      data:  l_user like tsp01-rq2name.
      clear : v_rqident,
              v_rqclient,
              v_rqo1name.
      l_user = sy-uname.
    Get latest Spool No
      select single rqident
                    rqclient
                    rqo1name
             into (v_rqident , v_rqclient , v_rqo1name)
        from tsp01
       where rqcretime =   ( select max( rqcretime )
                                    from tsp01
                                   where rq2name eq l_user
                                     and rqfinal eq '.' ).
      if sy-subrc = 0 .
        p_v_spool = v_rqident.
      endif.
    endform.                    " fetch_recent_spool
    *&      Form  format_check
          Checking the format ( ABAP/OTF)
    form format_check tables p_s_email structure s_email.
      data : l_objtype    like rststype-type.
      call function 'RSTS_GET_ATTRIBUTES'
        exporting
          authority     = 'SP01'(019)
          client        = v_rqclient
          name          = v_rqo1name
          part          = 1
        importing
          objtype       = l_objtype
        exceptions
          fb_error      = 1
          fb_rsts_other = 2
          no_object     = 3
          no_permission = 4.
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
      if l_objtype(3) = c_otf.
    Convert OTF Spool to PDF
        perform convert_otf2pdf tables p_s_email.
      else.
    Convert ABAP Spool to PDF
        perform convert_abap2pdf tables p_s_email.
      endif.
    endform.                    " format_check
    *&      Form  convert_otf2pdf
          Convert OTF Spool to PDF
    form convert_otf2pdf tables p_p_s_email structure s_email .
      clear   it_pdf.
      refresh it_pdf.
      data : l_bytecount  type i.
    Fn. to get the PDF format
      call function 'CONVERT_OTFSPOOLJOB_2_PDF'
        exporting
          src_spoolid              = v_rqident
          no_dialog                = 'X'
        importing
          pdf_bytecount            = l_bytecount
        tables
          pdf                      = it_pdf
        exceptions
          err_no_otf_spooljob      = 1
          err_no_spooljob          = 2
          err_no_permission        = 3
          err_conv_not_possible    = 4
          err_bad_dstdevice        = 5
          user_cancelled           = 6
          err_spoolerror           = 7
          err_temseerror           = 8
          err_btcjob_open_failed   = 9
          err_btcjob_submit_failed = 10
          err_btcjob_close_failed  = 11.
      if sy-subrc = 0.
    For page format
        perform page_format tables p_p_s_email.
      else.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    endform.                    " convert_otf2pdf
    *&      Form  convert_abap2pdf
           Convert ABAP Spool to PDF
    form convert_abap2pdf tables p_p_s_email structure s_email.
      clear   it_pdf.
      refresh it_pdf.
      data : l_bytecount  type i.
    Fn. to convert to PDF format
      call function 'CONVERT_ABAPSPOOLJOB_2_PDF'
        exporting
          src_spoolid              = v_rqident
          no_dialog                = 'X'
        importing
          pdf_bytecount            = l_bytecount
        tables
          pdf                      = it_pdf
        exceptions
          err_no_abap_spooljob     = 1
          err_no_spooljob          = 2
          err_no_permission        = 3
          err_conv_not_possible    = 4
          err_bad_destdevice       = 5
          user_cancelled           = 6
          err_spoolerror           = 7
          err_temseerror           = 8
          err_btcjob_open_failed   = 9
          err_btcjob_submit_failed = 10
          err_btcjob_close_failed  = 11.
      if sy-subrc = 0.
    For page formatting
        perform page_format tables p_p_s_email.
      else.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    endform.                    " convert_abap2pdf
    *&      Form  send_mail
          For sending mail
    form send_mail tables mail structure s_email .
    Structures and internal tables for the send data
      data: objpack like sopcklsti1 occurs 2  with header line,
            objhead like solisti1   occurs 1  with header line,
            objbin  like solisti1   occurs 0  with header line,
            objtxt  like solisti1   occurs 10 with header line,
            reclist like somlreci1  occurs 5  with header line.
      data: doc_chng like sodocchgi1,
            tab_lines like sy-tabix.
    Data for the status output after sending
      data: sent_to_all like sonv-flag.
      clear: it_reclist, it_reclist[],
             it_objtxt , it_objtxt[],
             it_objpack, it_objpack[],
             it_objbin , it_objbin[],x_doc_chng.
      loop at it_html.
        objbin-line = it_html-line.
        append objbin.
        clear objbin.
      endloop.
    Create the document which is to be sent
      doc_chng-obj_name  = 'List'(012).
      doc_chng-obj_descr = 'Mail'(013).
    Heading
      objtxt-line = 'Mail with pdf attachment'(014).
      append objtxt.
      clear objtxt.
    Size
      describe table objtxt lines tab_lines.
      read table objtxt index tab_lines.
      doc_chng-doc_size = ( tab_lines - 1 ) * 255 + strlen( objtxt ).
    Fill the fields of the packing_list for the main document:
      clear objpack-transf_bin.
    The document needs no header (head_num = 0)
      objpack-head_start = 1.
      objpack-head_num = 0.
    Body
      objpack-body_start = 1.
      objpack-body_num = tab_lines.
      objpack-doc_type = 'RAW'(015).
      append objpack.
    Create the attachment (the list itself)
      describe table objbin lines tab_lines.
    Fill the fields of the packing_list for the attachment:
      objpack-transf_bin = 'X'.
    Header
      objpack-head_start = 1.
      objpack-head_num = 0.
    Body
      objpack-body_start = 1.
      objpack-body_num = tab_lines.
      objpack-doc_type = 'PDF'(016).
      objpack-obj_name = 'Attachment'(017).
      objpack-obj_descr = 'Mail with pdf Attachment'(018).
      objpack-doc_size = tab_lines * 255.
      append objpack.
    *-Fill the mail recipient list
      loop at mail.
        reclist-receiver = mail-low.
        reclist-rec_type = c_u.
        append reclist.
        clear: reclist,
               mail.
      endloop.
    *-Send the document by calling the SAPoffice API1 module for sending
    *-documents with attachments
      call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
        exporting
          document_data              = doc_chng
          put_in_outbox              = c_x
          commit_work                = c_x
        importing
          sent_to_all                = sent_to_all
        tables
          packing_list               = objpack
          object_header              = objhead
          contents_bin               = objbin
          contents_txt               = objtxt
          receivers                  = reclist
        exceptions
          too_many_receivers         = 1
          document_not_sent          = 2
          operation_no_authorization = 4
          others                     = 99.
      case sy-subrc .
        when 0.
          message i000 with 'Mail has been sent successfully'(006).
        when others.
          message e000 with 'Problem in sending the mail'(023).
      endcase.
    endform.                    " send_mail
    *&      Form  page_format
           For page foramtting
    form page_format tables email structure s_email .
      data : l_lines       type i,
             l_temp(500)   type c,
             l_offset      type p,
             l_lineslen(2) type p,
             l_mimelen(2)  type p,
             l_tabix       like sy-tabix.
      clear : it_xi_pdf,
              it_xi_temp.
      refresh : it_xi_pdf,
                it_xi_temp.
      it_xi_pdf[] = it_pdf[].
    Reformat the line to 255 characters wide (code from SAP)
      clear: l_temp, l_offset, it_xi_temp.
      describe table it_xi_pdf   lines  l_lines.
      describe field it_xi_pdf   length l_lineslen in character mode.
      describe field it_xi_temp  length l_mimelen in character mode.
      loop at it_xi_pdf.
        l_tabix = sy-tabix.
        move it_xi_pdf to l_temp+l_offset.
        if l_tabix = l_lines.
          l_lineslen = strlen( it_xi_pdf ).
        endif.
        l_offset = l_offset + l_lineslen.
        if l_offset ge l_mimelen.
          clear it_xi_temp.
          it_xi_temp = l_temp(l_mimelen).
          append it_xi_temp.
          shift l_temp by l_mimelen places.
          l_offset = l_offset - l_mimelen.
        endif.
        if l_tabix = l_lines.
          if l_offset gt 0.
            clear it_xi_temp.
            it_xi_temp = l_temp(l_offset).
            append it_xi_temp.
          endif.
        endif.
      endloop.
      clear : it_xi_mime,
              it_xi_mime[].
      loop at it_xi_temp.
        it_xi_mime(255) = it_xi_temp-line.
        append it_xi_mime.
        clear  it_xi_mime.
      endloop.
    Final Data
      clear : it_html,
              it_html[].
      it_html[] = it_xi_mime[].
    For sending mail
      perform send_mail tables email.
    endform.                    " page_format
    *&      Form  fetch_variants
          For fetching the variants available for the program
    form fetch_variants .
      data : l_program like rs38m-programm value 'RKAEP000',
             l_vara1 type dfies-fieldname value 'P_VARA1'.
      clear : it_variant1,
              it_variant1[].
    Get variants
      perform get_variants tables it_variant1
                           using l_program.
    F4 Help
      if not it_variant1[] is initial.
        perform get_f4_help tables it_variant1
                             using l_vara1
                            changing p_vara1.
      else.
        message e000 with 'No variants available for report1'(054).
      endif.
    endform.                    " fetch_variants
    *&      Form  validation
          For Validation
    form validation .
      data : l_pro1 like rs38m-programm value 'RKAEP000',
             l_pro2 like rs38m-programm value 'GP3DIEHXY88SNFJ0391V7KF9EK7050',
             l_c1,
             l_c2.
    If both check-box are unchecked
      if p_c1 is initial
    and p_c2 is initial.
        message e000 with 'Check any one check-box'(049).
      endif.
    If checked without varaint
      if not p_c1 is initial and p_vara1 is initial.
        message e000 with 'Please give any one of the variant for report1'(055).
      endif.
    If checked without varaint
      if not p_c2 is initial and p_vara2 is initial.
        message e000 with 'Please give any one of the variant for report2'(061).
      endif.
    Reading the variant and fetching the mail-ids
      if p_c1 = c_x.
        l_c1 = '1'.
        clear : s_email,
                s_email[].
        perform read_variants tables it_mailid
                                     s_email
                               using p_vara1
                                     l_pro1
                                     l_c1.
        if s_email[] is initial.
          message e000 with 'No Id available for given Cost report1'(066).
        else.
          sort s_email by low.
          delete adjacent duplicates from s_email comparing low.
        endif.
      endif.
    Reading the variant and fetching the mail-ids
      if p_c2 = c_x.
        clear : s_email1,
                s_email1[].
        l_c2 = '2'.
        perform read_variants tables it_mailid1
                                     s_email1
                               using p_vara2
                                     l_pro2
                                     l_c2.
        if s_email1[] is initial.
          message e000 with 'No Id available for given Cost report2'(067).
        else.
          sort s_email1 by low.
          delete adjacent duplicates from s_email1 comparing low.
        endif.
      endif.
    endform.                    " validation
    *&      Form  GET_VARIANTS
          Fetching Variants
    form get_variants  tables   p_it_variant structure it_variant1
                       using    p_v_program  type rs38m-programm.
      select variant
             from varid
             into table p_it_variant
             where report = p_v_program.
    endform.                    " GET_VARIANTS
    *&      Form  GET_F4_HELP
          text
    form get_f4_help  tables   p_it_variant1 structure it_variant1
                       using   p_l_vara1 like dfies-fieldname
                      changing p_p_vara like p_vara1.
    Fn. for Pop-Up
      call function 'F4IF_INT_TABLE_VALUE_REQUEST'
        exporting
          retfield        = p_l_vara1
          value_org       = 'S'
          display         = ' '
        tables
          value_tab       = p_it_variant1
          return_tab      = it_return
        exceptions
          parameter_error = 1
          no_values_found = 2
          others          = 3.
      if sy-subrc = 0.
        p_p_vara = it_return-fieldval.
      else.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
    endform.                    " GET_F4_HELP
    *&      Form  FETCH_VARIANTS1
          text
    form fetch_variants1 .
      data : v_program1 like rs38m-programm value 'GP3DIEHXY88SNFJ0391V7KF9EK7050',
             l_vara2  type dfies-fieldname value 'P_VARA2'.
      clear : it_variant2,
              it_variant2[].
    Get Variants
      perform get_variants tables it_variant2
                           using v_program1.
    F4 Help
      if not it_variant2[] is initial.
        perform get_f4_help tables it_variant2
                            using  l_vara2
                          changing p_vara2.
      else.
        message e000 with 'No variants available for report2'(050).
      endif.
    endform.                    " FETCH_VARIANTS1
    *&      Form  read_variants
           Reading the variant and fetching the mail-ids
    form read_variants tables p_it_mailid structure it_mailid
                              p_s_email   structure s_email
                       using  p_p_vara1   like p_vara1
                              p_l_pro1    like rs38m-programm
                              p_l_c1      type c.
      data : l_temp(44),
             it_valutab like rsparams occurs 0 with header line.
      ranges : r_cocen for csks-kostl.
    Function Module to get the variant contents
      call function 'RS_VARIANT_CONTENTS'
        exporting
          report               = p_l_pro1
          variant              = p_p_vara1
        tables
          valutab              = it_valutab
        exceptions
          variant_non_existent = 1
          variant_obsolete     = 2
          others               = 3.
      if sy-subrc <> 0.
        message id sy-msgid type sy-msgty number sy-msgno
                with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      endif.
      clear : r_cocen,
              r_cocen[].
      loop at it_valutab where selname = 'KOSTL'
                            or selname = '_C-CCTR'.
    Getting the range of cost centers
        if it_valutab-option = 'BT'.
          r_cocen-low    = it_valutab-low.
    For Conversion Routine
          perform conversion using r_cocen-low.
          r_cocen-high   = it_valutab-high.
    For Conversion Routine
          perform conversion using r_cocen-high.
          r_cocen-option = 'BT'.
          r_cocen-sign   = 'I'.
          append r_cocen.
          clear  r_cocen.
        endif.
    Getting the single cost centers
        if it_valutab-option = 'EQ'.
          r_cocen-low    = it_valutab-low.
    For Conversion Routine
          perform conversion using r_cocen-low.
          r_cocen-option = 'EQ'.
          r_cocen-sign   = 'I'.
          append r_cocen.
          clear  r_cocen.
        endif.
      endloop.
    If no cost centers
      if not r_cocen[] is initial.
        select kokrs
               kostl
               datbi
               telx1
          from csks
               into table p_it_mailid
         where kostl in r_cocen.
        if p_it_mailid[] is initial.
          if p_l_c1 = '1'.
            message e000 with 'No IDs available for report1'(059).
          elseif p_l_c1 = '2'.
            message e000 with 'No IDs available for report2'(062).
          endif.
        endif.
    Deleting the blank entries
        delete p_it_mailid where telx1 = space.
        clear l_temp.
        read table p_it_mailid index 1.
        l_temp = p_it_mailid-telx1.
        data : l_check.
        loop at p_it_mailid where telx1 <> l_temp.
          l_check = c_x.
        endloop.
    For checking the unique ids
        if l_check = c_x.
          if p_l_c1 = '1'.
            message e000 with 'No unique mail-ids for  report1'(058).
          elseif p_l_c1 = '2'.
            message e000 with 'No unique mail-ids for  report2'(065).
          endif.
        endif.
    Populating the IDs for the cost centers
        loop at p_it_mailid.
          set locale language sy-langu.
          translate p_it_mailid-telx1 to lower case.
          set locale language space .
          concatenate p_it_mailid-telx1 '@allergan.com' into l_temp.
          p_s_email-low = l_temp.
          p_s_email-sign = 'I'.
          p_s_email-option = 'EQ'.
          append p_s_email.
          clear  p_s_email.
        endloop.
      else.
        if p_l_c1 = '1'.
          message e000 with 'No Cost Center Available for report1'(057).
        elseif p_l_c1 = '2'.
          message e000 with 'No Cost Center Available for report2'(063).
        endif.
      endif.
    endform.                    " read_variants
    *&      Form  CONVERSION
          For Conversion Routine
    form conversion  using    p_it_valutab_low type c.
      call function 'CONVERSION_EXIT_ALPHA_INPUT'
        exporting
          input  = p_it_valutab_low
        importing
          output = p_it_valutab_low.
    endform.                    " CONVERSION
    REPORT Z_RMTIWARI_SEND_SPOOL_MAIL_ATT .
    PARAMETERS : P_SPOOL TYPE TSP01-RQIDENT OBLIGATORY .
    PARAMETERS : P_MAIL TYPE char100 OBLIGATORY .
    TYPES : TY_LINE type string.
    DATA: IT_ATTACHMENT TYPE soli OCCURS 0 WITH HEADER LINE.
    DATA: IT_ATTACHMENT_LONG TYPE TY_LINE OCCURS 0 WITH HEADER LINE.
    DATA: LV_PDF_SIZE type i.
    DATA: LT_PDF type standard table of tline with header line.
    PERFORM SEND_EMAIL USING P_SPOOL P_MAIL.
    FORM send_email
    --> X_SPOOL_ID
    --> X_EMAIL
    FORM send_email USING X_SPOOL_ID X_EMAIL.
    DATA: LT_OBJPACK LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE,
    LT_OBJHEAD LIKE solisti1 OCCURS 1 WITH HEADER LINE,
    LT_OBJBIN LIKE solisti1 OCCURS 10 WITH HEADER LINE,
    LT_OBJTXT LIKE solisti1 OCCURS 10 WITH HEADER LINE,
    LT_RECLIST LIKE somlreci1 OCCURS 5 WITH HEADER LINE,
    LV_DOCUMENT_DATA TYPE sodocchgi1.
    DATA: L_ATT_LINES TYPE i.
    DATA : LV_SPOOL_DESC(68) type c.
    CHECK NOT ( X_EMAIL IS INITIAL ).
    CLEAR: LT_RECLIST, LT_RECLIST[],
    LT_OBJHEAD, LT_OBJHEAD[],
    LT_OBJTXT, LT_OBJTXT[],
    LT_OBJBIN, LT_OBJBIN[],
    LT_OBJPACK, LT_OBJPACK[].
    CLEAR LV_DOCUMENT_DATA.
    Read spool and get the pdf internal table and name of spool
    PERFORM READ_SPOOL USING X_SPOOL_ID LV_SPOOL_DESC.
    CHECK NOT ( LT_PDF[] IS INITIAL ).
    Convert pdf itab to 255 line itab.
    data :LV_COUNTER type i.
    data :LV_FROM type i.
    loop at LT_PDF.
    translate LT_PDF using ' ~' .
    concatenate IT_ATTACHMENT_LONG LT_PDF into it_attachment_long.
    endloop.
    translate IT_ATTACHMENT_LONG using '~ ' .
    append IT_ATTACHMENT_LONG.
    clear : LV_COUNTER.
    DO.
    LV_COUNTER = strlen( IT_ATTACHMENT_LONG ).
    if LV_COUNTER ge 255.
    IT_ATTACHMENT = IT_ATTACHMENT_LONG(255).
    append IT_ATTACHMENT.
    SHIFT IT_ATTACHMENT_LONG by 255 places.
    else.
    IT_ATTACHMENT = IT_ATTACHMENT_LONG(lv_counter).
    append IT_ATTACHMENT.
    exit.
    endif.
    ENDDO.
    Body of email
    MOVE 'Email sent to you from SAP' TO LT_OBJTXT.
    APPEND LT_OBJTXT.
    LV_DOCUMENT_DATA-obj_name = 'SpoolMail'.
    Title of the email as spool name
    LV_DOCUMENT_DATA-obj_descr = LV_SPOOL_DESC.
    LV_DOCUMENT_DATA-sensitivty = 'O'.
    LV_DOCUMENT_DATA-expiry_dat = SY-datum + 15.
    LV_DOCUMENT_DATA-doc_size = STRLEN( LT_OBJTXT ).
    e-mail body
    CLEAR LT_OBJPACK.
    LT_OBJPACK-head_start = 1.
    LT_OBJPACK-head_num = 0.
    LT_OBJPACK-body_start = 1.
    LT_OBJPACK-body_num = 1.
    LT_OBJPACK-doc_type = 'RAW'.
    LT_OBJPACK-doc_size = STRLEN( LT_OBJTXT ).
    APPEND LT_OBJPACK.
    For e-mail attachment
    DESCRIBE TABLE IT_ATTACHMENT LINES L_ATT_LINES.
    READ TABLE IT_ATTACHMENT INDEX L_ATT_LINES.
    CLEAR LT_OBJPACK.
    LT_OBJPACK-transf_bin = 'X'.
    LT_OBJPACK-head_start = 1.
    LT_OBJPACK-head_num = 1.
    LT_OBJPACK-body_start = 1.
    LT_OBJPACK-body_num = L_ATT_LINES.
    LT_OBJPACK-doc_type = 'PDF'.
    LT_OBJPACK-obj_name = 'email'.
    LT_OBJPACK-obj_descr = LV_SPOOL_DESC.
    LT_OBJPACK-doc_size = ( 255 * ( L_ATT_LINES - 1 ) ) + STRLEN( IT_ATTACHMENT-line ).
    APPEND LT_OBJPACK.
    make recipient list
    LT_RECLIST-receiver = X_EMAIL.
    LT_RECLIST-rec_type = 'B'. "To external email id
    APPEND LT_RECLIST.
    send mail with attachment
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
    document_data = LV_DOCUMENT_DATA
    put_in_outbox = 'X'
    TABLES
    packing_list = LT_OBJPACK
    object_header = LT_OBJHEAD
    contents_bin = IT_ATTACHMENT
    contents_txt = LT_OBJTXT
    receivers = LT_RECLIST
    EXCEPTIONS
    too_many_receivers = 1
    document_not_sent = 2
    document_type_not_exist = 3
    operation_no_authorization = 4
    parameter_error = 5
    x_error = 6
    enqueue_error = 7
    OTHERS = 8.
    If SY-subrc = 0.
    write:/ 'Message sent'.
    else.
    write:/ 'Error encountered'.
    endif.
    ENDFORM. " send_email
    *& Form read_spool
    FORM read_spool USING X_SPOOL_ID Y_SPOOL_DESC.
    DATA : LV_SPOOL_TYPE TYPE TSP01-RQDOCTYPE.
    SELECT SINGLE RQDOCTYPE RQTITLE
    INTO (lv_spool_type, y_spool_desc)
    FROM TSP01
    WHERE RQIDENT eq X_SPOOL_ID.
    IF Y_SPOOL_DESC IS INITIAL.
    concatenate 'Spool-' X_SPOOL_ID into Y_SPOOL_DESC.
    ENDIF.
    IF LV_SPOOL_TYPE eq 'LIST'. " If spool is a list
    CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
    EXPORTING
    SRC_SPOOLID

  • Report output send through mail

    Dear friends,
    Looking for sample report to send the report output through external mail on execution.
    Regards,
    Praveen Lobo

    *& Report  ZKB_EMAIL
    REPORT  zkb_email NO STANDARD PAGE HEADING LINE-SIZE 200.
    TABLES: ekko.
    PARAMETERS: p_email TYPE somlreci1-receiver
    DEFAULT '<b>WRITE EMAIL ID EG [email protected]'</b>.
    Output Table
    TYPES: BEGIN OF t_ekpo,
    ebeln TYPE ekpo-ebeln,
    ebelp TYPE ekpo-ebelp,
    aedat TYPE ekpo-aedat,
    matnr TYPE ekpo-matnr,
    END OF t_ekpo.
    DATA: it_ekpo TYPE STANDARD TABLE OF t_ekpo INITIAL SIZE 0,
    wa_ekpo TYPE t_ekpo.
    TYPES: BEGIN OF t_charekpo,
    ebeln(10) TYPE c,
    ebelp(5) TYPE c,
    aedat(8) TYPE c,
    matnr(18) TYPE c,
    END OF t_charekpo.
    DATA: wa_charekpo TYPE t_charekpo.
    Mail Parameters
    DATA: it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
    WITH HEADER LINE.
    DATA: it_attach TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
    WITH HEADER LINE.
    DATA: t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
    t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,
    t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
    t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,
    t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,
    w_cnt TYPE i,
    w_sent_all(1) TYPE c,
    w_doc_data LIKE sodocchgi1,
    gd_error TYPE sy-subrc,
    gd_reciever TYPE sy-subrc.
    *START_OF_SELECTION
    START-OF-SELECTION.
    Retrieve sample data from table ekpo
      PERFORM data_retrieval.
    Populate table with detaisl to be entered into .xls file
      PERFORM build_xls_data_table.
    *END-OF-SELECTION
    END-OF-SELECTION.
    Populate message body text
      PERFORM populate_email_message_body.
    Send file by email as .xls speadsheet
      PERFORM send_file_as_email_attachment   TABLES it_message   it_attach
      USING p_email 'Example .xls documnet attachment'  'XLS'  'filename'
      CHANGING gd_error
      gd_reciever.
    Instructs mail send program for SAPCONNECT to send email(rsconn01)
      PERFORM initiate_mail_execute_program.
    *& Form DATA_RETRIEVAL
    Retrieve data form EKPO table and populate itab it_ekko
    FORM data_retrieval.
      SELECT ebeln ebelp aedat matnr
      UP TO 10 ROWS
      FROM ekpo
      INTO TABLE it_ekpo.
    ENDFORM. " DATA_RETRIEVAL
    *& Form BUILD_XLS_DATA_TABLE
    Build data table for .xls document
    FORM build_xls_data_table.
      CONSTANTS: con_cret TYPE x VALUE '0D', "OK for non Unicode
                 con_tab TYPE x VALUE '09'. "OK for non Unicode
    *If you have Unicode check active in program attributes thnen you will
    *need to declare constants as follows
    *class cl_abap_char_utilities definition load.
    *constants:
    con_tab type c value cl_abap_char_utilities=>HORIZONTAL_TAB,
    con_cret type c value cl_abap_char_utilities=>CR_LF.
      CONCATENATE 'EBELN' 'EBELP' 'AEDAT' 'MATNR'  INTO it_attach SEPARATED BY space.
      CONCATENATE space it_attach INTO it_attach.
      APPEND it_attach.
      LOOP AT it_ekpo INTO wa_charekpo.
        CONCATENATE wa_charekpo-ebeln wa_charekpo-ebelp
        wa_charekpo-aedat wa_charekpo-matnr
        INTO it_attach SEPARATED BY space .
        CONCATENATE space it_attach INTO it_attach.
        APPEND it_attach.
      ENDLOOP.
    ENDFORM. " BUILD_XLS_DATA_TABLE
    *& Form SEND_FILE_AS_EMAIL_ATTACHMENT
    Send email
    FORM send_file_as_email_attachment TABLES pit_message
    pit_attach
    USING p_email
    p_mtitle
    p_format
    p_filename
    p_attdescription
    p_sender_address
    p_sender_addres_type
    CHANGING p_error
    p_reciever.
      DATA: ld_error TYPE sy-subrc,
      ld_reciever TYPE sy-subrc,
      ld_mtitle LIKE sodocchgi1-obj_descr,
      ld_email LIKE somlreci1-receiver,
      ld_format TYPE so_obj_tp ,
      ld_attdescription TYPE so_obj_nam ,
      ld_attfilename TYPE so_obj_des ,
      ld_sender_address LIKE soextreci1-receiver,
      ld_sender_address_type LIKE soextreci1-adr_typ,
      ld_receiver LIKE sy-subrc.
      ld_email = p_email.
      ld_mtitle = p_mtitle.
      ld_format = p_format.
      ld_attdescription = p_attdescription.
      ld_attfilename = p_filename.
      ld_sender_address = p_sender_address.
      ld_sender_address_type = p_sender_addres_type.
    Fill the document data.
      w_doc_data-doc_size = 1.
    Populate the subject/generic message attributes
      w_doc_data-obj_langu = sy-langu.
      w_doc_data-obj_name = 'SAPRPT'.
      w_doc_data-obj_descr = ld_mtitle .
      w_doc_data-sensitivty = 'F'.
    Fill the document data and get size of attachment
      CLEAR w_doc_data.
      READ TABLE it_attach INDEX w_cnt.
      w_doc_data-doc_size =
      ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
      w_doc_data-obj_langu = sy-langu.
      w_doc_data-obj_name = 'SAPRPT'.
      w_doc_data-obj_descr = ld_mtitle.
      w_doc_data-sensitivty = 'F'.
      w_doc_data-skip_scren = 'X'.
      CLEAR t_attachment.
      REFRESH t_attachment.
      t_attachment[] = pit_attach[].
    Describe the body of the message
      CLEAR t_packing_list.
      REFRESH t_packing_list.
      t_packing_list-transf_bin = space.
      t_packing_list-head_start = 1.
      t_packing_list-head_num = 0.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE it_message LINES t_packing_list-body_num.
      t_packing_list-doc_type = 'RAW'.
      APPEND t_packing_list.
    Create attachment notification
      t_packing_list-transf_bin = 'X'.
      t_packing_list-head_start = 1.
      t_packing_list-head_num = 1.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
      t_packing_list-doc_type = ld_format.
      t_packing_list-obj_descr = ld_attdescription.
      t_packing_list-obj_name = ld_attfilename.
      t_packing_list-doc_size = t_packing_list-body_num * 255.
      APPEND t_packing_list.
    Add the recipients email address
      CLEAR t_receivers.
      REFRESH t_receivers.
      t_receivers-receiver = ld_email.
      t_receivers-rec_type = 'U'.
      APPEND t_receivers.
      CLEAR t_receivers.
      t_receivers-receiver = sy-uname. " replace with <login name>
      t_receivers-rec_type = 'B'.
      t_receivers-express = 'X'.
      APPEND t_receivers.
      CLEAR t_receivers.
      CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
        EXPORTING
          document_data              = w_doc_data
          put_in_outbox              = 'X'
          sender_address             = ld_sender_address
          sender_address_type        = ld_sender_address_type
          commit_work                = 'X'
        IMPORTING
          sent_to_all                = w_sent_all
        TABLES
          packing_list               = t_packing_list
          contents_bin               = t_attachment
          contents_txt               = it_message
          receivers                  = t_receivers
        EXCEPTIONS
          too_many_receivers         = 1
          document_not_sent          = 2
          document_type_not_exist    = 3
          operation_no_authorization = 4
          parameter_error            = 5
          x_error                    = 6
          enqueue_error              = 7
          OTHERS                     = 8.
    Populate zerror return code
      ld_error = sy-subrc.
    Populate zreceiver return code
      LOOP AT t_receivers.
        ld_receiver = t_receivers-retrn_code.
      ENDLOOP.
    ENDFORM.                    "SEND_FILE_AS_EMAIL_ATTACHMENT
    *& Form INITIATE_MAIL_EXECUTE_PROGRAM
    Instructs mail send program for SAPCONNECT to send email.
    FORM initiate_mail_execute_program.
      WAIT UP TO 2 SECONDS.
      SUBMIT rsconn01 WITH mode = 'INT'
    WITH output = 'X'
      AND RETURN.
    ENDFORM. " INITIATE_MAIL_EXECUTE_PROGRAM
    *& Form POPULATE_EMAIL_MESSAGE_BODY
    Populate message body text
    FORM populate_email_message_body.
      REFRESH it_message.
      it_message = 'Please find attached a list test ekpo records'.
      APPEND it_message.
    ENDFORM. " POPULATE_EMAIL_MESSAGE_BODY
    Rewards if useful.............
    Minal

  • ZRS: Send report mail

    Hello,
    I 'm trying to send a report by e-mail. I have configured the SMTP setting on Configuration - Event and Messaging - SMTP Settings.
    Also I have configured on Configuration - Reporting Services - Email notification settings with a valid sender and receipt addreses.
    I logging on the Zenworks Report Server, select the report and click Send to - E-mail. I leave checked "used default settings" and Submit but NO e-mail is sent. I don't see any error, simply the e-mail message never appears.
    I have tried to uncheck "used default settings" and specify all the addresses needed but the result is the same, nothings happens, no errors....
    Can anyone tell me if I'm doing something wrong, or how I can configure the e-mail notification report option??
    Thank you

    Hello,
    more info, I continued doing tests and the only way that it works is if I schedule the execution of a specific report and send it by e-mail and specify manually all the information (uncheck used default settings).
    If I do the same but leave checked "used default settings" I get an error SMTP 501 - Syntax error. I have configured the SMTP setting on Configuration - Event and Messaging - SMTP Settings with my smtp server and default port 25. Also I have configured on Configuration - Reporting Services - Email notification settings with a valid sender and receipt addreses.
    Can someone tell me what I'm doing wrong or if someone is using this funcionality tell me how you configure it ?
    Thank you

  • The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 1 (2013-04-30T16:36:52). Exception Message: Cannot send mails to mail server. (Mailbox unavailable. The server response was: 5.7.1 Client does not

    Interesting db mail issue. If i click send test mail from sql mgmt studio, it works fine, but when i execute a SP to send a mail, it fails. One thing I noticed is that the "LastModified" column in the mail log shows the domain account when a test
    mail was sent from mgmt studio, but show "sa" when the SP was used to send mail. 
    This is from SQL 2012, did not see this in sql 2008, looks like 2008 always used the service account.  any ideas ?
    Get this error:
    The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 1 (2013-04-30T16:36:52). Exception Message: Cannot send mails to mail server. (Mailbox unavailable. The server response was: 5.7.1 Client does not
    Thanks.
    Ranga

    Hi Ranga,
    I also use SQL Server 2012. I send a test email through SQL Server Management and the last modified By “sa”.
    If you used stored procedure to send a test email. Please use the command below:
    EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'Adventure Works Administrator',
    @recipients = '[email protected]',
    @body = 'The stored procedure finished successfully.',
    @subject = 'Automated Success Message' ;
    I can both send test email through SQL Server Management Studio and SP. Make sure you have the right profile. Since you could send test mail via SQL Server Management Studio, please try again to send it via SP.
    Thanks.
    If you have any feedback on our support, please click
    here.
    Maggie Luo
    TechNet Community Support

  • Sender from Report-Mail

    Hello,
    I have to change the sender-Adress from Report-Mail. Can somebody tell me how I have to configure the sender-Adress. At the moment I get the sender-Adress oracle@<servername> when destype=mail.
    Thanks
    Heike

    You can specify the e-mail address in the parameter FROM.
    destype=mail FROM=[email protected]

  • How to check the success/failure of e-mail sending from Sharepoint?

    Dear Expert,
    I connect Exchange 2010 and SharePoint 2010. When user create workflow in sharepoint, it will send the email to confirm. if it's done. but I checked from user they didn't get the email. I would like to know how to check the success/failure of e-mail
    sending from Sharepoint? 
    Thank you

    By default, there is no logging mechanism in SharePoint for outgoing mails.
    Mails in SharePoint are sent by giving an SMTP sever IP address in Central Administration. SharePoint never sends email directly. It relays or routes mails to the SMTP server. So, logging should be done in the SMTP server itself.
    There is also another way of doing it. You can enable SMTP service of IIS for sending emails from SharePoint, which would also just relay the mails to an SMTP Server. But in this case, you can enable logging in your IIS SMTP Service. Please visit this blog
    for more details.
    In your case you need to check your exchange server for any failure for relaying mails.
    Regards, Vikas Patel

Maybe you are looking for

  • ICal and iPhone calendars are off by 1 hour from each other

    My iCal on desktop G5 and my iCal on my iPhone are syncing but they are an hour off of each other--in other words if I have a lunch scheduled for 11:00 on my desktop G5, it shows at 12:00 on my iPhone. I checked the clocks and they are both correctly

  • HT1373 NOT THE BEST OF HELP

    I HAD I PHONE 5  changed mind got i phone 4s now i had downloaded ring tones  apps show in my account as do ring tones but they do not come to my new 4s and it is different pc aswell  i had hope that apple had included sms delivery reports on i phone

  • Edit "JPEG" then "Save As" is destructive ????

    Having searched around I can't find an answer to a simple question. If I open a jpeg and edit it "with or without" layers, then flatten (In the case of layers) the image and select the "Save As" command and rename the file or select "As A Copy", will

  • IDOC for purchase order

    Hi,   I created an IDOC using the basic type orders04 , i populated all the required fields and tried to run the idoc through WE20 .The idoc got generated but with an error saying "Purchasing document & does not exist"..I am not able to see which par

  • ATTENTION CODE 6 FATAL ERROR SUFFERERS! - FIX FOUND!?!

    Greetings all. This is my FIRST post in the Adobe forum. We've been using the Encore CS3 product on the MAC lately. Have created about a dozen BD-R projects. Yes, it's buggy and the dreaded CODE 6: Fatal Error has come up on us A LOT!!! I "believe" I