code: func (p *Pss) SendRaw(address PssAddress, topic Topic, msg []byte) error {
  	if err := validateAddress(address); err != nil {
  		return err
  	}
  	pssMsgParams := &msgParams{
  		raw: true,
  	}
  	payload := &whisper.Envelope{
  		Data:  msg,
  		Topic: whisper.TopicType(topic),
  	}
  	pssMsg := newPssMsg(pssMsgParams)
  	pssMsg.To = address
  	pssMsg.Expire = uint32(time.Now().Add(p.msgTTL).Unix())
  	pssMsg.Payload = payload
  	p.addFwdCache(pssMsg)
  	err := p.enqueue(pssMsg)
  	if err != nil {
  		return err
  	}
  
  	// if we have a proxhandler on this topic
  	// also deliver message to ourselves
  	if capabilities, ok := p.getTopicHandlerCaps(topic); ok {
  		if p.isSelfPossibleRecipient(pssMsg, true) && capabilities.prox {
  			return p.process(pssMsg, true, true)
  		}
  	}
  	return nil
  }
docs: // Send a raw message (any encryption is responsibility of calling client)
  //
  // Will fail if raw messages are disallowed