示例#1
0
文件: mailing.py 项目: viona/Easyshop
def mailOrderSent(order):
    """Sends email to customer that the order has been sent.
    """
    shop = IShopManagement(order).getShop()

    # Get mail content
    view = getMultiAdapter((order, order.REQUEST), name="mail-order-sent")
    text = view()

    # Get customer
    customer = order.getCustomer()

    # Get charset
    props = getToolByName(order, "portal_properties").site_properties
    charset = props.getProperty("default_charset")

    # Get sender
    sender = IMailAddresses(shop).getSender()

    sendMultipartMail(context=order,
                      sender=sender,
                      receiver=customer.email,
                      subject="Your order %s has been sent." % order.getId(),
                      text=text,
                      charset=charset)
示例#2
0
文件: mailing.py 项目: viona/Easyshop
def mailOrderSubmitted(order):
    """Sends email to shop owner that an order has been submitted.
    """
    shop = IShopManagement(order).getShop()

    # Get sender and receiver
    mail_addresses = IMailAddresses(shop)
    sender = mail_addresses.getSender()
    receivers = mail_addresses.getReceivers()

    if sender and receivers:
        view = getMultiAdapter((order, order.REQUEST),
                               name="mail-order-submitted")
        text = view()

        # get charset
        props = getToolByName(order, "portal_properties").site_properties
        charset = props.getProperty("default_charset")

        sendMultipartMail(context=order,
                          sender=sender,
                          receiver=", ".join(receivers),
                          subject="E-Shop: New order",
                          text=text,
                          charset=charset)
示例#3
0
文件: mailing.py 项目: viona/Easyshop
def mailOrderReceived(order):
    """Sends email to customer that the order has been received.
    """
    shop = IShopManagement(order).getShop()

    # Get TOC
    shop = IShopManagement(order).getShop()
    page = IInformationManagement(shop).getInformationPage(
        "terms-and-conditions")

    # Get sender
    mail_addresses = IMailAddresses(shop)
    sender = mail_addresses.getSender()
    bcc = mail_addresses.getReceivers()

    # Get receiver
    customer = order.getCustomer()
    address = IAddressManagement(customer).getShippingAddress()
    receiver = address.email or customer.email

    if sender and receiver:
        view = getMultiAdapter((order, order.REQUEST),
                               name="mail-order-received")
        text = view()

        # get charset
        props = getToolByName(order, "portal_properties").site_properties
        charset = props.getProperty("default_charset")

        sendMailWithAttachements(
            context=order,
            sender=sender,
            receiver=receiver,
            bcc=bcc,
            subject="Bestellbestätigung %s" % shop.Title(),
            text=text,
            files=[])  # (page.getFile().filename, page.getFile())
示例#4
0
    def send_rating_mails(self):
        """
        """
        live = self.request.get("live")

        now = DateTime()

        # Get sender
        mail_addresses = IMailAddresses(self.context)
        sender = mail_addresses.getSender()
        bcc = ["*****@*****.**", "*****@*****.**"]

        wftool = getToolByName(self.context, "portal_workflow")

        # Get all relevant orders
        om = IOrderManagement(self.context)

        for order in om.getOrders():

            # Send mail only once (below "rating-mail" is set)
            if "rating-mail" in order.getMarketingInfo():
                continue

            try:
                last_state = wftool.getInfoFor(order, "review_history")[-1]
            except IndexError:
                continue

            # Send mail only for closed orders
            if last_state["review_state"] != "closed":
                continue

            # Send only mails for orders which closed at lease2 weeks
            # ago
            if now - last_state["time"] < (2 * 7):
                continue

            # Send only mails for orders which have at least on product with
            # a valid url (aka product which is not deleted in the meanwhile)
            if self.hasItems(order) == False:
                continue

            if live is None:
                receiver = "*****@*****.**"
                if sender and receiver:
                    view = getMultiAdapter((order, order.REQUEST),
                                           name="rating-mail")
                    text = view()

                    # get charset
                    props = getToolByName(order,
                                          "portal_properties").site_properties
                    charset = props.getProperty("default_charset")

                    sendMultipartMail(context=order,
                                      sender=sender,
                                      receiver=receiver,
                                      subject="Bitte bewerten Sie Ihr Produkt",
                                      text=text,
                                      charset=charset)
            else:
                # Get receiver
                customer = order.getCustomer()
                address = IAddressManagement(customer).getShippingAddress()
                receiver = address.email

                if sender and receiver:
                    view = getMultiAdapter((order, order.REQUEST),
                                           name="rating-mail")
                    text = view()

                    # get charset
                    props = getToolByName(order,
                                          "portal_properties").site_properties
                    charset = props.getProperty("default_charset")

                    sendMultipartMail(context=order,
                                      sender=sender,
                                      receiver=receiver,
                                      bcc=bcc,
                                      subject="Bitte bewerten Sie Ihr Produkt",
                                      text=text,
                                      charset=charset)

                    # set marketing info
                    mi = list(order.getMarketingInfo())
                    mi.append("rating-mail")
                    order.setMarketingInfo(mi)
示例#5
0
 def afterSetUp(self):
     """
     """
     super(TestShopMailAddresses, self).afterSetUp()
     self.addresses = IMailAddresses(self.shop)