Number of recipients restricted with specific host exceptions

iMS Version: 6.1
I have a need to restrict all senders of email to 10 recipients in a single email message. However, one specific host needs to be able to send to an unlimited (or just a large number) number of recipients on a single message.
From some reading, this isn't all that easy to set up. However, since the exception host is known (by IP/name), we are hoping that simplifies things. Any thoughts?
(the exception host is a server which houses a learning management system. That system allows the professor to send email to the students in the course)

Hi,
Possible to achieve. Requires a few steps though.
1. Isolate off traffic from your LMS system (in this example represented by 1.2.3.4) to a new source channel:
Create a new mapping table in the style of the INTERNAL_IP mapping table (add to the mappings file) e.g. FRIENDLY_IP
FRIENDLY_IP
  $(1.2.3.4/32)  $Y
  *  $NAdd a rewrite rule (imta.cnf) to direct traffic from the FRIENDLY_IP range to the tcp_friendly source channel (needs to be ABOVE the INTERNAL_IP rewrite rule which looks almost the same):
! Do mapping lookup for "friendly", non-internal IP addresses
[] $E$R${FRIENDLY_IP,$L}$U%[$L]@tcp_friendly-daemonCreate a new tcp_friendly channel. This should look the same as your existing tcp_intranet channel e.g.
! tcp_friendly
tcp_friendly smtp mx single_sys subdirs 20 dequeue_removeroute maxjobs 7 pool SMTP_POOL maytlsserver allowswitchchannel saslswitchchannel tcp_auth missingrecipientpolicy 4
tcp_friendly-daemon2. Increase the recipient level on the tcp_friendly channel by adding the "recipientlimit <limit>" keyword e.g.
tcp_friendly smtp mx single_sys subdirs 20 dequeue_removeroute maxjobs 7 pool SMTP_POOL maytlsserver allowswitchchannel saslswitchchannel tcp_auth missingrecipientpolicy 4 recipientlimit 1003. Lock down the recipient limit for other traffic.
Edit the channel definitions for other source channels (such as tcp_local/tcp_intranet/tcp_submit/tcp_auth) and add a smaller recipient (recipientlimit 10) e.g.
tcp_intranet smtp mx single_sys subdirs 20 dequeue_removeroute maxjobs 7 pool SMTP_POOL maytlsserver allowswitchchannel saslswitchchann
el tcp_auth missingrecipientpolicy 4 recipientlimit 10Then run ./imsimta cnbuild ; ./imsimta restart for it to take effect. You should see emails from your LMS system coming from tcp_friendly rather then tcp_local/tcp_intranet.
Recommend you run through and test these steps on a development/test system first of course.
Regards,
Shane.

Similar Messages

  • Set "Maximum number of recipients" option for specific users in Exchange 2010

    I have some set of users who usually send bulk emails outside. I need to increase the value for these users for"Maximum number of recipients" as 999.
    Any help or suggestion is appreciated.
    Thanks,
    RIWAA
    RIWA

    Hi Riwa ,
    Really sorry for providing the wrong value on MaxRecipientEnvelopeLimit in my previous post.
    The default value for MaxRecipientEnvelopeLimit is 5000
    Reference Link : http://technet.microsoft.com/en-us/library/bb124151%28v=exchg.150%29.aspx
    MaxRecipientEnvelopeLimit
    Optional
    Microsoft.Exchange.Data.Unlimited
    This parameter is available only in on-premises Exchange 2013.
    The MaxRecipientEnvelopeLimit parameter specifies the maximum number of recipients in a message. The default value is 5000. The valid input range for this parameter is from 0 through 2147483647.
    If you enter a value ofUnlimited, no limit is imposed on the number of recipients in a message. Exchange treats an unexpanded distribution group as one recipient.
    ANDY thanks a lot for intimating and making me to have a clear understanding on this case.
    Thanks & Regards S.Nithyanandham

  • Tunneling and problem with unknown host exception

    hello! i've got a problem with https. i use jdk 1.5.0, jboss-4.0.4.ga-patch1, soap.
    and i'm going crasy.. i've testet my client code at our network and it works fine. but if i want to get jobs from the server of our customer, my client throw an "unknown host exception: firm".
    i wonder why it hasn't the full host. the url may look like this: https://firm.sub.com:443/ and while the client connects to the server, i depugged it and the host is correct: firm.sub.
    but after the connection, when the client want to get something from the server (when it wants to communicate with the server over soap) it crashs.
    my client code looks like this:
    private ClientInterfaceEndpoint getClientInterface() throws ServiceException {
    QName serviceQName = new QName(DOCSERVER_NAMESPACE, CLIENT_INTERFACE_SERVICENAME);
    URL wsdlUrl = getClientInterfaceWsdlUrl();
    log.info("*******WSDLURL host: " + wsdlUrl.getHost()); // out: firm.sub
    log.info("*******WSDLURL port: " + wsdlUrl.getPort()); // out: 443
    URL mapping = getClass().getClassLoader().getResource("META-INF/DocumentServer_Mapping.xml");
    log.info("*******MappingURL path: " + mapping.getPath());
    if (wsdlUrl.toString().toLowerCase().contains("https")) {
    if (null == getConfig().getTruststore() || getConfig().getTruststore().equalsIgnoreCase("")) {
    throw new RuntimeException("No or incorrect TruststorePath in the docclient-config");
    File tmp = new File(getConfig().getTruststore());
    if (!tmp.isFile() || !tmp.canRead()) {
    throw new RuntimeException("The truststore at the 'TruststorePath' isn't a file or can't be read.");
    System.setProperty(SYS_PROPERTY_KEY_TRUST, getConfig().getTruststore());
    System.setProperty(SYS_PROPERTY_KEY_TRUST_PW, config.getTruststorePass());
    ServiceFactoryImpl factory = null;
    factory = (ServiceFactoryImpl) ServiceFactory.newInstance();
    Service clientInterfaceService = null;
    try {// create the service for the ClientInterface
    clientInterfaceService = factory.createService(wsdlUrl, serviceQName, mapping, new URL(config.getServerURL())); //, new URL(config.getServerURL())
    log.info("*******ClientInterFaceService WSDL URL Host: " + clientInterfaceService.getWSDLDocumentLocation().getHost()); // out:firm.sub
    log.info("*******ClientInterFaceService WSDL URL Port: " + clientInterfaceService.getWSDLDocumentLocation().getPort()); // out: 443
    } catch (ServiceException e) {
    log.error(e.getMessage());
    throw new RuntimeException(e.getMessage());
    } catch (MalformedURLException e) {
    log.error(e.getMessage());
    throw new RuntimeException(e.getMessage());
    } catch (Exception e) {
    log.error(e.getMessage());
    throw new RuntimeException(e.getMessage());
    }// getting the ClientInterfaceEndpoint
    ClientInterfaceEndpoint clientInterface = (ClientInterfaceEndpoint) clientInterfaceService.getPort(ClientInterfaceEndpoint.class);
    return clientInterface;
    protected URL getClientInterfaceWsdlUrl() {
    URL url = null;
    String urlString = getConfig().getServerURL() + CLIENT_INTERFACE_URI + "?wsdl";
    Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
    Properties properties = System.getProperties();
    String handlers = System.getProperty(SYS_PROPERTY_KEY_PKGS);
    if (handlers == null) {
    properties.put(SYS_PROPERTY_KEY_PKGS, SYS_PROPERTY_VALUE_PKGS);
    else {
    properties.put(SYS_PROPERTY_KEY_PKGS, SYS_PROPERTY_VALUE_PKGS.concat("|").concat(handlers));
    try {
    url = new URL(urlString);
    log.info("*******URL host: " + url.getHost());
    log.info("*******URL port: " + url.getPort());
    log.info("*******URL path: " + url.getPath());
    } catch (MalformedURLException e) {
    log.fatal("DocumentProvider SOAP configured incorrectly. DocServer URL malformed: " + urlString);
    throw new RuntimeException("DocumentProvider SOAP configured incorrectly. DocServer URL malformed: " + urlString, e);
    System.setProperties(properties);
    return url;
    }if it's usefull: the customer use a apache server (not tomcat) where a the server is and the client at another system the jboss.
    The customer told me: if i want to connect the client via http i have to tunnel.. maybe i have to tunnel using https too?
    have i to generate the endpoint classes a second time, extra for https?
    or doesn't soap like host like "firm.sub"?
    can anyone help me please?!
    sorry, my english isn't very well...

    sorry, it's not the same error. The output is: Unable to connect to any host due to exception: java.net.socket.exception: java.net.socket.exception: Unregcognized windows socket error: 10106: create.

  • Restrict DNS zone transfers to specific hosts?

    Is it possible within Server Admin to restrict DNS zone transfers to specific hosts? If not, can the allow-transfer statement be added to /etc/named.conf without breaking the ability to use Server Admin to administer DNS?
    Thanks,
    Bob
    XServe Dual Processor Xeon server   Mac OS X (10.4.8)  

    you can add the statement... it should not break Server Admin.
    While you are there, you may want to add forwarders for efficiency.
    Add the bold code
    options {
    directory "/var/named";
    forwarders {
    0.0.0.0;
    0.0.0.0;
    forward first;
    recursion true;
    replace 0.0.0.0 with your ISPs name servers
    Jeff

  • Is it possible in SAP that I can restrict a specific delivery with shipment

    Hi All,
    Is it possible in SAP that I can restrict a specific delivery can be attached with specific shipment?
    Example,
    I have a delivery type "A", which can only be attached with Shipment type "Z".
    Thanks in advance.

    I don't think it is possible, However you can restrict that through selection criteria of VT04.

  • Is there any restriction on number of recipients in RecipientType.TO or BCC

    Hello,
    I wanted to know whether is there any restriction on number of recipients in Message.RecipientType.TO or BCC..
    Please clarify
    Thanks in advance
    Pradeep

    JavaMail imposes no limits, but your server might.

  • Can I restrict a specific subnet/host to specific server in CSS?

    I would like to restrict a specific subnet/host to access the same server. Can I do that?
    Thanks

    Hi,
    You can configure an ACL on the CSS. This should achieve what you are trying to do.
    For more details, check
    http://www.cisco.com/en/US/docs/app_ntwk_services/data_center_app_services/css11500series/v8.20/configuration/security/guide/Access.html#wp1133930
    I hope this helps
    Daniel

  • Does serial number come with specific motherboard or it's replaceable?

    Hello guys, there have been a lot of sudden death issues of Z3C and I was one of the victims too, luckily just got it back after nearly 2 months wait
    Anyway I was told that they had replaced a new motherboard to fix the problem, but I don't really think so because when I went to the repair centre they gave me a paper with a parts list they repaired and replaced, which included screen, lock button and so on but no "motherboard" or "mainboard" written on it, I looked again and again just to make sure. If they did change the motherboard, would there be a new serial number because when I checked it in the Android setting it is still the same as the first time I bought it, is this true or they can insert the same serial number into the new motherboard? I know this may sound crazy or dumb, I will be happy if they didn't because there's still a chance for me to retrieve all the previous datas which meant so much to me. Thanks for the help guys!

    Thanks for your reply Thommo, I had already contacted Xperia care there was nothing they could do to retrieve the data, but I have just found Wondershare Dr.Fone and some other data recovery softwares that can help to retrieve the lost data for non-rooted phones. However I don't know why only Z3C needs to be rooted in order to perform data retrieval but as stated in other websites rooting Z3C will void the DRM that result in bad quality low-light photos... So if possible I will unroot it but it seems like there hasn't been a way released yet to unroot Z3C so far, right? So I'm like stuck in between
    So before I root I just want to confirm if the IMEI / serial number comes with specific motherboard, if yes then there's still hope left to get back everything I want because that means they didn't replace the motherboard at all!

  • JDev 1013 Error: Internal compilation error, terminated with a fatal except

    I've a class I compiled used in JDev 10.1.2.1.
    Now I try to compile it with JDev 10.1.3 but I get an error :
    Error: Internal compilation error, terminated with a fatal exception
    What does it means ?
    How can I solve it ?
    I tried to use both 5.0 and 1.4.2 compilers but the result is the same.
    Tks
    Tullio
    Here the class
    /* The following code was generated by JFlex 1.2.2 on 05/10/04 17.46 */
    * Copyright (C) 1998,99 Gerwin Klein <[email protected]>. *
    * All rights reserved. *
    * This program is free software; you can redistribute it and/or modify *
    * it under the terms of the GNU General Public License. See the file *
    * COPYRIGHT for more information. *
    * This program is distributed in the hope that it will be useful, *
    * but WITHOUT ANY WARRANTY; without even the implied warranty of *
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
    * GNU General Public License for more details. *
    * You should have received a copy of the GNU General Public License along *
    * with this program; if not, write to the Free Software Foundation, Inc., *
    * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
    package axioma.a4j.parser;
    import java_cup.runtime.*;
    * This class is a scanner generated by
    * JFlex 1.2.2
    * on 05/10/04 17.46 from the specification file
    * <tt>file:/C:/A4j/A4j/Common/Parser/grammatiche/Scanner.flex</tt>
    public class AxScanner implements java_cup.runtime.Scanner {
    /** this character denotes the end of file */
    final public static int YYEOF = -1;
    /** lexical states */
    final public static int STRING = 1;
    final public static int YYINITIAL = 0;
    final public static int CHARLITERAL = 2;
    * Translates characters to character classes
    final private static String yycmap_packed =
    "\11\10\1\3\1\2\1\0\1\3\1\1\16\10\4\0\1\3\1\50"+
    "\1\16\1\0\1\7\1\0\1\44\1\15\1\31\1\32\1\5\1\41"+
    "\1\40\1\42\1\14\1\4\1\12\11\13\1\0\1\37\1\47\1\46"+
    "\1\45\2\0\32\11\1\35\1\17\1\36\1\0\1\11\1\0\1\25"+
    "\1\51\2\11\1\23\1\24\5\11\1\26\1\6\1\30\3\11\1\21"+
    "\1\27\1\20\1\22\5\11\1\33\1\43\1\34\1\0\41\10\2\0"+
    "\4\11\4\0\1\11\12\0\1\11\4\0\1\11\5\0\27\11\1\0"+
    "\37\11\1\0\u0128\11\2\0\22\11\34\0\136\11\2\0\11\11\2\0"+
    "\7\11\16\0\2\11\16\0\5\11\11\0\1\11\21\0\117\10\21\0"+
    "\3\10\27\0\1\11\13\0\1\11\1\0\3\11\1\0\1\11\1\0"+
    "\24\11\1\0\54\11\1\0\10\11\2\0\32\11\14\0\202\11\1\0"+
    "\4\10\5\0\71\11\2\0\2\11\2\0\2\11\3\0\46\11\2\0"+
    "\2\11\67\0\46\11\2\0\1\11\7\0\47\11\11\0\21\10\1\0"+
    "\27\10\1\0\3\10\1\0\1\10\1\0\2\10\1\0\1\10\13\0"+
    "\33\11\5\0\3\11\56\0\32\11\5\0\13\11\13\10\12\0\12\10"+
    "\6\0\1\10\143\11\1\0\1\11\7\10\2\0\6\10\2\11\2\10"+
    "\1\0\4\10\2\0\12\10\3\11\22\0\1\10\1\11\1\10\33\11"+
    "\3\0\33\10\65\0\46\11\13\10\u0150\0\3\10\1\0\65\11\2\0"+
    "\1\10\1\11\20\10\2\0\1\11\4\10\3\0\12\11\2\10\2\0"+
    "\12\10\21\0\3\10\1\0\10\11\2\0\2\11\2\0\26\11\1\0"+
    "\7\11\1\0\1\11\3\0\4\11\2\0\1\10\1\0\7\10\2\0"+
    "\2\10\2\0\3\10\11\0\1\10\4\0\2\11\1\0\3\11\2\10"+
    "\2\0\12\10\4\11\16\0\1\10\2\0\6\11\4\0\2\11\2\0"+
    "\26\11\1\0\7\11\1\0\2\11\1\0\2\11\1\0\2\11\2\0"+
    "\1\10\1\0\5\10\4\0\2\10\2\0\3\10\13\0\4\11\1\0"+
    "\1\11\7\0\14\10\3\11\14\0\3\10\1\0\7\11\1\0\1\11"+
    "\1\0\3\11\1\0\26\11\1\0\7\11\1\0\2\11\1\0\5\11"+
    "\2\0\1\10\1\11\10\10\1\0\3\10\1\0\3\10\2\0\1\11"+
    "\17\0\1\11\5\0\12\10\21\0\3\10\1\0\10\11\2\0\2\11"+
    "\2\0\26\11\1\0\7\11\1\0\2\11\2\0\4\11\2\0\1\10"+
    "\1\11\6\10\3\0\2\10\2\0\3\10\10\0\2\10\4\0\2\11"+
    "\1\0\3\11\4\0\12\10\22\0\2\10\1\0\6\11\3\0\3\11"+
    "\1\0\4\11\3\0\2\11\1\0\1\11\1\0\2\11\3\0\2\11"+
    "\3\0\3\11\3\0\10\11\1\0\3\11\4\0\5\10\3\0\3\10"+
    "\1\0\4\10\11\0\1\10\17\0\11\10\21\0\3\10\1\0\10\11"+
    "\1\0\3\11\1\0\27\11\1\0\12\11\1\0\5\11\4\0\7\10"+
    "\1\0\3\10\1\0\4\10\7\0\2\10\11\0\2\11\4\0\12\10"+
    "\22\0\2\10\1\0\10\11\1\0\3\11\1\0\27\11\1\0\12\11"+
    "\1\0\5\11\4\0\7\10\1\0\3\10\1\0\4\10\7\0\2\10"+
    "\7\0\1\11\1\0\2\11\4\0\12\10\22\0\2\10\1\0\10\11"+
    "\1\0\3\11\1\0\27\11\1\0\20\11\4\0\6\10\2\0\3\10"+
    "\1\0\4\10\11\0\1\10\10\0\2\11\4\0\12\10\22\0\2\10"+
    "\1\0\22\11\3\0\30\11\1\0\11\11\1\0\1\11\2\0\7\11"+
    "\3\0\1\10\4\0\6\10\1\0\1\10\1\0\10\10\22\0\2\10"+
    "\15\0\60\11\1\10\2\11\7\10\4\0\10\11\10\10\1\0\12\10"+
    "\47\0\2\11\1\0\1\11\2\0\2\11\1\0\1\11\2\0\1\11"+
    "\6\0\4\11\1\0\7\11\1\0\3\11\1\0\1\11\1\0\1\11"+
    "\2\0\2\11\1\0\4\11\1\10\2\11\6\10\1\0\2\10\1\11"+
    "\2\0\5\11\1\0\1\11\1\0\6\10\2\0\12\10\2\0\2\11"+
    "\42\0\1\11\27\0\2\10\6\0\12\10\13\0\1\10\1\0\1\10"+
    "\1\0\1\10\4\0\2\10\10\11\1\0\42\11\6\0\24\10\1\0"+
    "\2\10\4\11\4\0\10\10\1\0\44\10\11\0\1\10\71\0\42\11"+
    "\1\0\5\11\1\0\2\11\1\0\7\10\3\0\4\10\6\0\12\10"+
    "\6\0\6\11\4\10\106\0\46\11\12\0\47\11\11\0\132\11\5\0"+
    "\104\11\5\0\122\11\6\0\7\11\1\0\77\11\1\0\1\11\1\0"+
    "\4\11\2\0\7\11\1\0\1\11\1\0\4\11\2\0\47\11\1\0"+
    "\1\11\1\0\4\11\2\0\37\11\1\0\1\11\1\0\4\11\2\0"+
    "\7\11\1\0\1\11\1\0\4\11\2\0\7\11\1\0\7\11\1\0"+
    "\27\11\1\0\37\11\1\0\1\11\1\0\4\11\2\0\7\11\1\0"+
    "\47\11\1\0\23\11\16\0\11\10\56\0\125\11\14\0\u026c\11\2\0"+
    "\10\11\12\0\32\11\5\0\113\11\225\0\64\11\40\10\7\0\1\11"+
    "\4\0\12\10\41\0\4\10\1\0\12\10\6\0\130\11\10\0\51\11"+
    "\1\10\u0556\0\234\11\4\0\132\11\6\0\26\11\2\0\6\11\2\0"+
    "\46\11\2\0\6\11\2\0\10\11\1\0\1\11\1\0\1\11\1\0"+
    "\1\11\1\0\37\11\2\0\65\11\1\0\7\11\1\0\1\11\3\0"+
    "\3\11\1\0\7\11\3\0\4\11\2\0\6\11\4\0\15\11\5\0"+
    "\3\11\1\0\7\11\17\0\4\10\32\0\5\10\20\0\2\11\51\0"+
    "\6\10\17\0\1\11\40\0\20\11\40\0\15\10\4\0\1\10\40\0"+
    "\1\11\4\0\1\11\2\0\12\11\1\0\1\11\3\0\5\11\6\0"+
    "\1\11\1\0\1\11\1\0\1\11\1\0\4\11\1\0\3\11\1\0"+
    "\7\11\46\0\44\11\u0e81\0\3\11\31\0\11\11\6\10\1\0\5\11"+
    "\2\0\3\11\6\0\124\11\4\0\2\10\2\0\2\11\2\0\136\11"+
    "\6\0\50\11\4\0\136\11\21\0\30\11\u0248\0\u19b6\11\112\0\u51a6\11"+
    "\132\0\u048d\11\u0773\0\u2ba4\11\u215c\0\u012e\11\322\0\7\11\14\0\5\11"+
    "\5\0\1\11\1\10\12\11\1\0\15\11\1\0\5\11\1\0\1\11"+
    "\1\0\2\11\1\0\2\11\1\0\154\11\41\0\u016b\11\22\0\100\11"+
    "\2\0\66\11\50\0\14\11\44\0\4\10\17\0\2\11\30\0\3\11"+
    "\31\0\1\11\6\0\3\11\1\0\1\11\1\0\207\11\2\0\1\10"+
    "\4\0\1\11\13\0\12\10\7\0\32\11\4\0\1\11\1\0\32\11"+
    "\12\0\132\11\3\0\6\11\2\0\6\11\2\0\6\11\2\0\3\11"+
    "\3\0\2\11\3\0\2\11\22\0\3\10\4\0";
    * Translates characters to character classes
    final private static char [] yycmap = yy_unpack_cmap(yycmap_packed);
    * Translates a state to a row index in the transition table
    final private static int yy_rowMap [] = {
    0, 42, 84, 126, 168, 126, 210, 126, 252, 294,
    336, 378, 126, 126, 420, 462, 504, 126, 126, 126,
    126, 126, 126, 126, 126, 126, 126, 546, 126, 588,
    126, 630, 672, 714, 756, 126, 126, 798, 840, 882,
    126, 924, 966, 1008, 1050, 336, 1092, 1134, 1176, 1218,
    126, 126, 126, 126, 126, 126, 126, 126, 126, 126,
    126, 126, 126, 126, 1260, 1302, 1344, 1386, 1428, 1470,
    1512, 1554, 126, 1596, 1638, 1680, 1722, 126, 126, 126,
    126, 126, 126, 126, 1764, 294, 1806, 294, 294
    * The packed transition table of the DFA
    final private static String yy_packed =
    "\1\4\1\5\2\6\1\7\1\10\1\11\1\12\1\4"+
    "\1\12\1\13\1\14\1\4\1\15\1\16\1\4\1\17"+
    "\3\12\1\20\3\12\1\21\1\22\1\23\1\24\1\25"+
    "\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35"+
    "\1\36\1\37\1\40\1\41\1\12\1\42\1\43\1\44"+
    "\12\42\1\45\1\42\1\46\32\42\1\47\1\50\1\51"+
    "\13\47\1\4\1\52\32\47\54\0\1\6\53\0\1\53"+
    "\1\54\52\0\1\12\1\55\4\12\4\0\11\12\20\0"+
    "\1\12\6\0\6\12\4\0\11\12\20\0\1\12\12\0"+
    "\2\56\1\57\47\0\2\14\1\57\43\0\6\12\4\0"+
    "\1\12\1\60\7\12\20\0\1\12\6\0\6\12\4\0"+
    "\5\12\1\61\3\12\20\0\1\12\6\0\6\12\4\0"+
    "\2\12\1\62\6\12\20\0\1\12\43\0\1\63\54\0"+
    "\1\64\51\0\1\65\51\0\1\66\3\0\1\42\2\0"+
    "\12\42\1\0\1\42\1\0\32\42\2\0\1\44\47\0"+
    "\2\67\1\0\12\67\1\70\1\71\1\72\1\73\1\74"+
    "\2\67\1\75\3\67\1\76\20\67\1\77\15\0\1\100"+
    "\36\0\1\51\47\0\2\67\1\0\12\67\1\101\1\102"+
    "\1\103\1\104\1\105\2\67\1\106\3\67\1\104\20\67"+
    "\1\107\1\53\1\110\1\111\47\53\52\112\6\0\6\55"+
    "\4\0\11\55\20\0\1\55\12\0\2\57\44\0\6\12"+
    "\4\0\2\12\1\113\6\12\20\0\1\12\6\0\6\12"+
    "\4\0\6\12\1\114\2\12\20\0\1\12\6\0\6\12"+
    "\4\0\6\12\1\115\2\12\20\0\1\12\15\0\1\116"+
    "\51\0\1\117\51\0\1\120\51\0\1\121\51\0\1\122"+
    "\51\0\1\123\51\0\1\124\36\0\1\111\47\0\5\112"+
    "\1\125\44\112\6\0\6\12\4\0\3\12\1\126\5\12"+
    "\20\0\1\12\6\0\6\12\4\0\7\12\1\127\1\12"+
    "\20\0\1\12\6\0\6\12\4\0\6\12\1\130\2\12"+
    "\20\0\1\12\4\112\1\111\1\125\44\112\6\0\6\12"+
    "\4\0\3\12\1\131\5\12\20\0\1\12";
    * The transition table of the DFA
    final private static int yytrans [] = yy_unpack(yy_packed);
    /* error codes */
    final private static int YY_UNKNOWN_ERROR = 0;
    final private static int YY_ILLEGAL_STATE = 1;
    final private static int YY_NO_MATCH = 2;
    final private static int YY_PUSHBACK_2BIG = 3;
    /* error messages for the codes above */
    final private static String YY_ERROR_MSG[] = {
    "Unkown internal scanner error",
    "Internal error: unknown state",
    "Error: could not match input",
    "Error: pushback value was too large"
    * YY_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>
    private final static byte YY_ATTRIBUTE[] = {
    0, 0, 0, 9, 1, 9, 1, 9, 1, 1, 1, 1, 9, 9, 1, 1,
    1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1, 9, 1, 9, 1,
    1, 1, 1, 9, 9, 1, 1, 1, 9, 1, 0, 0, 1, 0, 1, 1,
    1, 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
    1, 1, 1, 1, 1, 1, 1, 1, 9, 0, 1, 1, 1, 9, 9, 9,
    9, 9, 9, 9, 0, 1, 1, 1, 1
    /** the input device */
    private java.io.Reader yy_reader;
    /** the current state of the DFA */
    private int yy_state;
    /** the current lexical state */
    private int yy_lexical_state = YYINITIAL;
    /** this buffer contains the current text to be matched and is
    the source of the yytext() string */
    private char yy_buffer[] = new char[16384];
    /** the textposition at the last accepting state */
    private int yy_markedPos;
    /** the textposition at the last state to be included in yytext */
    private int yy_pushbackPos;
    /** the current text position in the buffer */
    private int yy_currentPos;
    /** startRead marks the beginning of the yytext() string in the buffer */
    private int yy_startRead;
    /** endRead marks the last character in the buffer, that has been read
    from input */
    private int yy_endRead;
    /** number of newlines encountered up to the start of the matched text */
    private int yyline;
    /** the number of characters up to the start of the matched text */
    private int yychar;
    * the number of characters from the last newline up to the start of the
    * matched text
    private int yycolumn;
    * yy_atBOL == true <=> the scanner is currently at the beginning of a line
    private boolean yy_atBOL;
    /** yy_atEOF == true <=> the scanner has returned a value for EOF */
    private boolean yy_atEOF;
    /** denotes if the user-EOF-code has already been executed */
    private boolean yy_eof_done;
    /* user code: */
    StringBuffer string = new StringBuffer();
    private InContestoParser mContesto = null;
    private Symbol symbol(int type) {
    return new JavaSymbol(type, yyline+1, yycolumn+1);
    private Symbol symbol(int type, Object value) {
    return new JavaSymbol(type, yyline+1, yycolumn+1, value);
    private Symbol axSymbol(Object value) {
    int tipo = 0;
    CercaValore cercaVal = new CercaValoreComm(value.toString(),mContesto);
    Ritorno rito = cercaVal.cercaValore();
    int tipoSym = rito.getTipo();
    if (tipoSym == Domini.tipoDatoNumerico) {
         tipo = AxSym.VAR_N;
    else if (tipoSym == Domini.tipoDatoAlfanumerico) {
    tipo = AxSym.VAR_A;
    else if (tipoSym == Domini.tipoDatoBooleano) {
         tipo = AxSym.VAR_B;
    JavaSymbol myJ = new JavaSymbol(tipo, yyline+1, yycolumn+1, value);
    return myJ;
    private Symbol axMetodo(Object value) {
    int tipo = 0;
    CercaValore cercaVal = new CercaValoreComm(value.toString(),mContesto);
    Ritorno rito = cercaVal.cercaValore();
    int tipoSym = rito.getTipo();
    if (tipoSym == Domini.tipoDatoNumerico) {
         tipo = AxSym.MET_N;
    else if (tipoSym == Domini.tipoDatoAlfanumerico) {
    tipo = AxSym.MET_A;
    else if (tipoSym == Domini.tipoDatoBooleano) {
         tipo = AxSym.MET_B;
    JavaSymbol myJ = new JavaSymbol(tipo, yyline+1, yycolumn+1, value);
    return myJ;
    * Set the reader and reset variables
    public void setReader(java.io.Reader in) {
    this.yy_lexical_state = YYINITIAL;
    this.yy_atEOF = false;
    this.yy_atBOL = false;
    this.yy_eof_done = false;
    this.yy_state = 0;
    this.yy_pushbackPos = 0;
    this.yy_markedPos = 0;
    this.yy_currentPos = 0;
    this.yy_startRead = 0;
    this.yy_endRead = 0;
    this.yyline = 0;
    this.yychar = 0;
    this.yycolumn = 0;
    this.yy_reader = in;
    public void setContesto(InContestoParser xpContesto) {
    mContesto = xpContesto;
    public InContestoParser getContesto() {
    return mContesto;
    * Creates a new scanner.
    * There is also java.io.Reader version of this constructor.
    * @param in the java.io.Inputstream to read input from.
    public AxScanner() throws java.io.IOException { this(System.in); }
    * Creates a new scanner
    * There is also a java.io.InputStream version of this constructor.
    * @param in the java.io.Reader to read input from.
    AxScanner(java.io.Reader in) {
    this.yy_reader = in;
    * Creates a new scanner.
    * There is also java.io.Reader version of this constructor.
    * @param in the java.io.Inputstream to read input from.
    AxScanner(java.io.InputStream in) {
    this(new java.io.InputStreamReader(in));
    * Unpacks the compressed DFA transition table.
    * @param packed the packed transition table
    * @return the unpacked transition table
    private static int [] yy_unpack(String packed) {
    int [] trans = new int[1848];
    int i = 0; /* index in packed string */
    int j = 0; /* index in unpacked array */
    while (i < 492) {
    int count = packed.charAt(i++);
    int value = packed.charAt(i++);
    value--;
    do trans[j++] = value; while (--count > 0);
    return trans;
    * Unpacks the compressed character translation table.
    * @param packed the packed character translation table
    * @return the unpacked character translation table
    private static char [] yy_unpack_cmap(String packed) {
    char [] map = new char[0x10000];
    int i = 0; /* index in packed string */
    int j = 0; /* index in unpacked array */
    while (i < 1614) {
    int count = packed.charAt(i++);
    char value = packed.charAt(i++);
    do map[j++] = value; while (--count > 0);
    return map;
    * Gets the next input character.
    * @return the next character of the input stream, EOF if the
    * end of the stream is reached.
    * @exception IOException if any I/O-Error occurs
    private int yy_advance() throws java.io.IOException {
    /* standard case */
    if (yy_currentPos < yy_endRead) return yy_buffer[yy_currentPos++];
    /* if the eof is reached, we don't need to work hard */
    if (yy_atEOF) return YYEOF;
    /* otherwise: need to refill the buffer */
    /* first: make room (if you can) */
    if (yy_startRead > 0) {
    System.arraycopy(yy_buffer, yy_startRead,
    yy_buffer, 0,
    yy_endRead-yy_startRead);
    /* translate stored positions */
    yy_endRead-= yy_startRead;
    yy_currentPos-= yy_startRead;
    yy_markedPos-= yy_startRead;
    yy_pushbackPos-= yy_startRead;
    yy_startRead = 0;
    /* is the buffer big enough? */
    if (yy_currentPos >= yy_buffer.length) {
    /* if not: blow it up */
    char newBuffer[] = new char[yy_currentPos*2];
    System.arraycopy(yy_buffer, 0, newBuffer, 0, yy_buffer.length);
    yy_buffer = newBuffer;
    /* finally: fill the buffer with new input */
    int numRead = yy_reader.read(yy_buffer, yy_endRead,
    yy_buffer.length-yy_endRead);
    if ( numRead == -1 ) return YYEOF;
    yy_endRead+= numRead;
    return yy_buffer[yy_currentPos++];
    * Closes the input stream.
    final public void yyclose() throws java.io.IOException {
    yy_atEOF = true; /* indicate end of file */
    yy_endRead = yy_startRead; /* invalidate buffer */
    yy_reader.close();
    * Returns the current lexical state.
    final public int yystate() {
    return yy_lexical_state;
    * Enters a new lexical state
    * @param newState the new lexical state
    final public void yybegin(int newState) {
    yy_lexical_state = newState;
    * Returns the text matched by the current regular expression.
    final public String yytext() {
    return new String( yy_buffer, yy_startRead, yy_markedPos-yy_startRead );
    * Returns the length of the matched text region.
    final public int yylength() {
    return yy_markedPos-yy_startRead;
    * Reports an error that occured while scanning.
    * @param errorCode the code of the errormessage to display
    private void yy_ScanError(int errorCode) {
    try {
    System.out.println(YY_ERROR_MSG[errorCode]);
    catch (ArrayIndexOutOfBoundsException e) {
    System.out.println(YY_ERROR_MSG[YY_UNKNOWN_ERROR]);
    System.exit(1);
    * Pushes the specified amount of characters back into the input stream.
    * They will be read again by then next call of the scanning method
    * @param number the number of characters to be read again.
    * This number must not be greater than yylength()!
    private void yypushback(int number) {
    if ( number > yylength() )
    yy_ScanError(YY_PUSHBACK_2BIG);
    yy_markedPos -= number;
    * Contains user EOF-code, which will be executed exactly once,
    * when the end of file is reached
    private void yy_do_eof() throws java.io.IOException {
    if (!yy_eof_done) {
    yy_eof_done = true;
    yyclose();
    * Resumes scanning until the next regular expression is matched,
    * the end of input is encountered or an I/O-Error occurs.
    * @return the next token
    * @exception IOException if any I/O-Error occurs
    public java_cup.runtime.Symbol next_token() throws java.io.IOException {
    int yy_input;
    int yy_action;
    while (true) {
    boolean yy_counted = false;
    for (yy_currentPos = yy_startRead; yy_currentPos < yy_markedPos;
    yy_currentPos++) {
    switch (yy_buffer[yy_currentPos]) {
    case '\r':
    yyline++;
    yycolumn = 0;
    yy_counted = true;
    break;
    case '\n':
    if (yy_counted)
    yy_counted = false;
    else {
    yyline++;
    yycolumn = 0;
    break;
    default:
    yy_counted = false;
    yycolumn++;
    if (yy_counted) {
    if ( yy_advance() == '\n' ) yyline--;
    if ( !yy_atEOF ) yy_currentPos--;
    yy_action = -1;
    yy_currentPos = yy_startRead = yy_markedPos;
    yy_state = yy_lexical_state;
    yy_forAction: {
    while (true) {
    yy_input = yy_advance();
    if ( yy_input == YYEOF ) break yy_forAction;
    int yy_next = yytrans[ yy_rowMap[yy_state] + yycmap[yy_input] ];
    if (yy_next == -1) break yy_forAction;
    yy_state = yy_next;
    int yy_attributes = YY_ATTRIBUTE[yy_state];
    if ( (yy_attributes & 1) > 0 ) {
    yy_action = yy_state;
    yy_markedPos = yy_currentPos;
    if ( (yy_attributes & 8) > 0 ) break yy_forAction;
    switch (yy_action) {   
    case 83:
    {  yybegin(YYINITIAL); return symbol(AxSym.CHARACTER_LITERAL, new Character('\b')); }
    case 90: break;
    case 82:
    {  yybegin(YYINITIAL); return symbol(AxSym.CHARACTER_LITERAL, new Character('\f')); }
    case 91: break;
    case 81:
    {  yybegin(YYINITIAL); return symbol(AxSym.CHARACTER_LITERAL, new Character('\r')); }
    case 92: break;
    case 80:
    {  yybegin(YYINITIAL); return symbol(AxSym.CHARACTER_LITERAL, new Character('\t')); }
    case 93: break;
    case 78:
    {  yybegin(YYINITIAL); return symbol(AxSym.CHARACTER_LITERAL, new Character('\"')); }
    case 94: break;
    case 77:
    {  yybegin(YYINITIAL); return symbol(AxSym.CHARACTER_LITERAL, new Character('\'')); }
    case 95: break;
    case 88:
    {  return symbol(AxSym.BOOLEAN_LITERAL, new Boolean(false));  }
    case 96: break;
    case 87:
    {  return symbol(AxSym.NULL_LITERAL);  }
    case 97: break;
    case 85:
    {  return symbol(AxSym.BOOLEAN_LITERAL, new Boolean(true));  }
    case 98: break;
    case 79:
    {  yybegin(YYINITIAL); return symbol(AxSym.CHARACTER_LITERAL, new Character('\\'));  }
    case 99: break;
    case 71:
    case 72:
    {  /* ignore */  }
    case 100: break;
    case 63:
    {  yybegin(YYINITIAL); return symbol(AxSym.CHARACTER_LITERAL, new Character(yytext().charAt(0)));  }
    case 101: break;
    case 62:
    {  string.append( '\b' );  }
    case 102: break;
    case 61:
    {  string.append( '\n' );  }
    case 103: break;
    case 60:
    {  string.append( '\f' );  }
    case 104: break;
    case 59:
    {  string.append( '\r' );  }
    case 105: break;
    case 58:
    {  string.append( '\t' );  }
    case 106: break;
    case 57:
    {  string.append( '\\' );  }
    case 107: break;
    case 56:
    {  string.append( '\"' );  }
    case 108: break;
    case 55:
    {  string.append( '\'' );  }
    case 109: break;
    case 25:
    {  return symbol(AxSym.PLUS);  }
    case 110: break;
    case 24:
    {  return symbol(AxSym.COMMA);  }
    case 111: break;
    case 23:
    {  return symbol(AxSym.SEMI);  }
    case 112: break;
    case 22:
    {  return symbol(AxSym.RQUADRA);  }
    case 113: break;
    case 21:
    {  return symbol(AxSym.LQUADRA);  }
    case 114: break;
    case 20:
    {  return symbol(AxSym.RGRAFFA);  }
    case 115: break;
    case 19:
    {  return symbol(AxSym.LGRAFFA);  }
    case 116: break;
    case 18:
    {  return symbol(AxSym.RPAREN);  }
    case 117: break;
    case 17:
    {  return symbol(AxSym.LPAREN);  }
    case 118: break;
    case 3:
    case 37:
    case 38:
    case 41:
    {  throw new RuntimeException("Illegal character \""+yytext()+"\" at line "+yyline+", column "+yycolumn);  }
    case 119: break;
    case 4:
    case 5:
    {  /*return symbol(AxSym.INVIO);*/ /* ignore */  }
    case 120: break;
    case 6:
    {  return symbol(AxSym.DIVIDE);  }
    case 121: break;
    case 7:
    {  return symbol(AxSym.TIMES);  }
    case 122: break;
    case 8:
    case 9:
    case 14:
    case 15:
    case 16:
    case 47:
    case 48:
    case 49:
    case 74:
    case 75:
    case 76:
    case 86:
    {  return axSymbol(yytext());  }
    case 123: break;
    case 10:
    case 11:
    {  return symbol(AxSym.INTEGER_LITERAL, new Integer(yytext()));  }
    case 124: break;
    case 12:
    {  yybegin(STRING); string.setLength(0);  }
    case 125: break;
    case 13:
    {  yybegin(CHARLITERAL);  }
    case 126: break;
    case 26:
    {  return symbol(AxSym.MINUS);  }
    case 127: break;
    case 27:
    {  return symbol(AxSym.ORB);  }
    case 128: break;
    case 28:
    {  return symbol(AxSym.ANDB);  }
    case 129: break;
    case 29:
    {  return symbol(AxSym.GT);  }
    case 130: break;
    case 30:
    {  return symbol(AxSym.EQ);  }
    case 131: break;
    case 31:
    {  return symbol(AxSym.LT);  }
    case 132: break;
    case 32:
    {  return symbol(AxSym.NEG);  }
    case 133: break;
    case 33:
    {  string.append( yytext() );  }
    case 134: break;
    case 34:
    case 35:
    {  throw new RuntimeException("Unterminated string at end of line");  }
    case 135: break;
    case 36:
    {  yybegin(YYINITIAL); return symbol(AxSym.STRING_LITERAL, string.toString());  }
    case 136: break;
    case 39:
    case 40:
    {  throw new RuntimeException("Unterminated character literal at end of line");  }
    case 137: break;
    case 44:
    {  return axMetodo(yytext());  }
    case 138: break;
    case 46:
    {  return symbol(AxSym.FLOATING_POINT_LITERAL, new Float(yytext()));  }
    case 139: break;
    case 50:
    {  return symbol(AxSym.DUEP);  }
    case 140: break;
    case 51:
    {  return symbol(AxSym.GE);  }
    case 141: break;
    case 52:
    {  return symbol(AxSym.LE);  }
    case 142: break;
    case 53:
    {  return symbol(AxSym.NE);  }
    case 143: break;
    case 54:
    case 64:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    {  throw new RuntimeException("Illegal escape sequence \""+yytext()+"\"");  }
    case 144: break;
    default:
    if (yy_input == YYEOF && yy_startRead == yy_currentPos) {
    yy_atEOF = true;
    yy_do_eof();
    {     return new java_cup.runtime.Symbol(AxSym.EOF);
    else {
    yy_ScanError(YY_NO_MATCH);
    }

    I setted use Javac checkbox and it worked ???
    Could someone explain me what happened ?
    The problem seems to be in the very long privated final string I defined, making it shorther the problem is solved again .
    Tks
    Tullio

  • Disable Portable Home Directories on specific hosts for all users?

    Hello All,
    Would it be possible to block any and all Portable Home Directory services for specific hosts? Something like "MobileAccountNeverAsk-<user>" but for the whole workstation? We have a network with both portable and stationary machines. I'd like our users to be able to use all machines, going portable on the MacBook and not bothering with syncing when logged into iMacs or Mac Pros.
    The Open Directory servers are running Snow Leopard (for now) and all clients are running Lion.
    Thanks
    Paul

    Darren,
    Yes. The clients are Solaris 10 as well. And the domain is the same on both server and clients.
    The files should be owned by real users.
    If a user ssh's into the server directly, the permissions display properly. But on the clients it is nobody. Other than the permission displaying wrong, I haven't noticed any permission-related restrictions on the clients.
    -Jim
    Edited by: cr8rface on Sep 22, 2008 10:30 AM

  • Abap cod e required  for  send an email with specific template

    hi guru's
    i want to send an email with specific template ,which contain some email links in the body of the email,and some of the font will be in different colour
    i want load the template it in to abap program as it is.is this possible. please let me know.
    where can i maintain the template,

    hello
    check this may help u
    TABLES: ekko.
    PARAMETERS: p_email TYPE somlreci1-receiver
    DEFAULT 'xyzlive.com'.
    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.
    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 con_tab.
    CONCATENATE con_cret 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 con_tab.
    CONCATENATE con_cret 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'.
    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'.
    t_receivers-com_type = 'INT'.
    t_receivers-notif_del = 'X'.
    t_receivers-notif_ndel = 'X'.
    APPEND 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.
    *& 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
    Thank u,
    santhosh

  • Ftp_connect with specific port

    Hi All,
    Any help using FTP_CONNECT function, Doing connection to ftp server with specifi port (not port 21) will be greatly appreciated. Any one?
    thanks
    supriatna

    Hi Supriatna,
    sample code may be useful to you:
    FTP Connect
      CALL FUNCTION 'FTP_CONNECT'
        EXPORTING
          USER                   = P_USER
          PASSWORD               = P_PWD
          ACCOUNT                =
          HOST                   = P_HOST
          RFC_DESTINATION        = 'SAPFTPA'
          GATEWAY_USER           =
          GATEWAY_PASSWORD       =
          GATEWAY_HOST           =
        IMPORTING
          HANDLE                 = HDL
        EXCEPTIONS
          NOT_CONNECTED          = 1
          OTHERS                 = 2.
    If sy-subrc = 0.
            CALL FUNCTION 'FTP_COMMAND'
                 EXPORTING
                      HANDLE        = HDL
                      COMMAND       = V_PATH
                 TABLES
                      DATA          = IT_RESULT
                 EXCEPTIONS
                      TCPIP_ERROR   = 1
                      COMMAND_ERROR = 2
                      DATA_ERROR    = 3
                      OTHERS        = 4.
    Endif.
    Lanka

  • Sending E-mail to large number of recipients

    Hi,
    Note 598718 describes number of messages that is possible to send pr second if paralell prosessing is used:
    "For all SAP technology Releases 6.xx, one of the next Support Packages will deliver a basic change of the SAPconect send job which will provide scalability of the throughput by using several parallel send jobs and/or application servers. This will allow a throughput of approximately 15 messages per second (about 1,000,000 messages per day)."
    Does anybody know if this still is the limit (15 pr. second) in CRM 7.0 and if there is a way to improve this number?
    Regards,
    Ronny

    I thought about using BCC, but it seems a little messy although it would do the job.
    Messy how?  That's exactly what it's for.  In fact, there's no other way to hide addresses from other recipients of the message.  The only other way to do it would be to script automated sending of one message per address, and that would get quite messy!
    What is the maximum number of recipients that Mail can handle?
    There's no limit enforced by Mail, AFAIK.  The limits come from the SMTP server you're using.
    One of the issues I had when using Outlook on Windows for this by copying and pasting from a text document, was that if there was an invalid/non-existent address in the list, it would just return an error and I was never quite sure if the whole thing didn't send, or if it was just to the dodgy address(es).
    In Mail, you'll just get a bounce message for any addresses that don't exist.  The one exception to that is addresses on the same server that you're sending from...  often, the server will simply reject the attempt to send to an address that it knows doesn't exist.  I'm not sure what kind of message the server returns in that case, though, and suspect it depends on the server.  It's been a while since I've seen such a problem.

  • Mail - how to send to large number of recipients?

    How can I send an email to a large number of recipients that I hold addresses for in a document without a) adding them to my contacts, and b) so that they can't all see each others addresses?

    I thought about using BCC, but it seems a little messy although it would do the job.
    Messy how?  That's exactly what it's for.  In fact, there's no other way to hide addresses from other recipients of the message.  The only other way to do it would be to script automated sending of one message per address, and that would get quite messy!
    What is the maximum number of recipients that Mail can handle?
    There's no limit enforced by Mail, AFAIK.  The limits come from the SMTP server you're using.
    One of the issues I had when using Outlook on Windows for this by copying and pasting from a text document, was that if there was an invalid/non-existent address in the list, it would just return an error and I was never quite sure if the whole thing didn't send, or if it was just to the dodgy address(es).
    In Mail, you'll just get a bounce message for any addresses that don't exist.  The one exception to that is addresses on the same server that you're sending from...  often, the server will simply reject the attempt to send to an address that it knows doesn't exist.  I'm not sure what kind of message the server returns in that case, though, and suspect it depends on the server.  It's been a while since I've seen such a problem.

  • Associate specific account with specific address

    Is there a way to associate specific recipients with specific email accounts? So, every time I send a colleague from work an email, my work-account is automatically associated with the recipient's email?

    I wish someone had answered this question but I imagine that what bartpop was inquiring about is not an Apple Mail option. Would love it if it were.You ever find out differently bartpop?

Maybe you are looking for

  • Some of my text messages do not show up on Verizon online usage

    My husband received a text last night from a friend.  Then 2 minutes later that same friend texted me.  It shows this friends text on my online usage, but no his.  It has since shown messages that we've sent to each other so I know it's updated.  Why

  • Error while saving as draft the outgoing payment

    Hi All, My client is getting an error message "This entry already exists in payment draft OPDF (ODBC)" while saving as draft the outgoing payment. Please advice any solution. Regards, Siddiq

  • Content Area API in 9.0.2 (wwsbr_api) is there a workaround?

    The end goal is to have a button in a region that takes users to an add item form. I want to have the button right on the page, without having to go to edit mode. So, looking at the PDK I see wwsbr_api.add_item. http://portalstudio.oracle.com/pls/ops

  • Macbook Pro 2011 keyboard Layout

    Hey people, I from Portugal and I am going to study in USA. I would like to buy a macbook pro in New York but I'm not accustomed to USA keyboard layout. Is it possible to buy a macbook pro with portuguese keyboard layout? Thank you

  • How do I get past "trial version expired", when I bought the software?

    On November 30, 2012, I purchased Photoshop CS6.  Today, February 27, 2013, I tried to lauch Photoshop, and it tells me that my trial version has expired.  But I bought it!!  What can I do to get Photoshop to run?